您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了flask修改靜態(tài)資源后緩存文件不能及時(shí)更改怎么辦,內(nèi)容簡而易懂,希望大家可以學(xué)習(xí)一下,學(xué)習(xí)完之后肯定會(huì)有收獲的,下面讓小編帶大家一起來看看吧。
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) # 取文件最后修改時(shí)間的時(shí)間戳,文件不更新,則可用緩存 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í)間的時(shí)間戳。修改文件后,參數(shù)v發(fā)生變化,瀏覽器去服務(wù)端請求新的靜態(tài)資源文件。
內(nèi)容擴(kuò)展:
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
以上就是關(guān)于flask修改靜態(tài)資源后緩存文件不能及時(shí)更改怎么辦的內(nèi)容,如果你們有學(xué)習(xí)到知識(shí)或者技能,可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。