溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

flask修改靜態(tài)資源后緩存文件不能及時(shí)更改怎么辦

發(fā)布時(shí)間:2020-08-03 09:03:02 來源:億速云 閱讀:618 作者:小豬 欄目:開發(fā)技術(shù)

這篇文章主要為大家展示了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方法,在后面加了&#63;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í)或者技能,可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(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)容。

AI