如何解決flask修改靜態(tài)資源后緩存文件不能及時更改問題
run.py
from flask import url_for @app.context_processor # 上下文渲染器,給所有html添加渲染參數(shù) def inject_url(): data = { "url_for": dated_url_for, } return data def dated_url_for(endpoint, **values): filename = None if endpoint == 'static': filename = values.get('filename', None) if filename: file_path = os.path.join(app.root_path, endpoint, filename) values['v'] = int(os.stat(file_path).st_mtime) # 取文件最后修改時間的時間戳,文件不更新,則可用緩存 return url_for(endpoint, **values)
html文件
<link rel="stylesheet" href="{{ url_for('static', filename='css/base.css') }}" rel="external nofollow" >
這里重寫了url_for方法,在后面加了?v=xxx,這里的xxx是該文件最后修改時間的時間戳。修改文件后,參數(shù)v發(fā)生變化,瀏覽器去服務(wù)端請求新的靜態(tài)資源文件。
內(nèi)容擴展:
flask踩過的坑
希望大家把遇到的問題都分享下,減少走彎路。
1.router不能統(tǒng)一管理,我采用Django模式把所有的路由都配置在urls文件中
2.router不能統(tǒng)一加載,沒有找到像spring包掃描類似的工具類
3.TemplateNotFound靜態(tài)資源找不到
4.debug模式 靜態(tài)資源修改不生效,需要重啟服務(wù)器
if name == ‘main‘: #靜態(tài)資源修改不需要重啟 app.jinja_env.auto_reload = True app.run(debug=True)
5.Template 引用靜態(tài)資源 url_for
以上就是如何解決flask修改靜態(tài)資源后緩存文件不能及時更改問題的詳細內(nèi)容,更多關(guān)于flask修改靜態(tài)資源后緩存文件不能及時更改的資料請關(guān)注腳本之家其它相關(guān)文章!

django 實現(xiàn)將本地圖片存入數(shù)據(jù)庫,并能顯示在web上的示例

python 找出list中最大或者最小幾個數(shù)的索引方法

Python的Bottle框架中返回靜態(tài)文件和JSON對象的方法

淺談python中scipy.misc.logsumexp函數(shù)的運用場景