Web笔记-通过版本号控制客户端浏览器中的缓存
生活随笔
收集整理的這篇文章主要介紹了
Web笔记-通过版本号控制客户端浏览器中的缓存
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
這里舉個例子:
通過Python管理靜態(tài)資源。但有時候,js或者css更新了,瀏覽器不知道,還使用緩存的情況。
如下所示:
通過在url中帶個?這種方式,使得瀏覽器去獲取新的資源
看下根請求下相關鏈接:
后面這一串是根據(jù)時間產生的隨機數(shù)。
?
如果是開發(fā)環(huán)境,我們通過這種方式,使得客戶端瀏覽器都獲取到新的資源。
生產環(huán)境,通過文件進行指定版本:
相關的python代碼如下:
在配置文件夾中新增:
在靜態(tài)資源管理文件中,local_setting.py中配置了這個文件,就讀一行,也就是版本號,如果沒有,就使用隨機數(shù)據(jù)去做,相關代碼如下:
UrlManager.py
from application import app from common.libs.DataHelper import getCurrentTime import osclass UrlManager(object):@staticmethoddef buildUrl(path):config_domain = app.config['DOMAIN']return "%s%s" % (config_domain['www'], path)@staticmethoddef buildStaticUrl(path):path = "/static" + path + "?ver=" + UrlManager.getReleaseVersion();return UrlManager.buildUrl(path)#版本管理#開發(fā)模式 使用時間作為版本號#生產模式 使用版本文件進行管理@staticmethoddef getReleaseVersion():ver = "%s" % (getCurrentTime("%Y%m%d%H%M%S%f"))release_path = app.config.get("RELEASE_PATH");if release_path and os.path.exists(release_path):with open(release_path, "r") as f:ver = f.readline()return verreturn ver其中getCurrentTimer如下:
DataHelper.py
import datetimedef getCurrentTime(frm = "%Y-%m-%d %H:%M:%S"):dt = datetime.datetime.now()return dt.strftime(frm)app.config.get(XXX)中這個app是在核心文件(核心變量定義文件中定義的)
如下:
總結
以上是生活随笔為你收集整理的Web笔记-通过版本号控制客户端浏览器中的缓存的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: QML工作笔记-Image中fillMo
- 下一篇: CORS跨域限制以及预请求验证(C++