鍍金池/ 問答/Java  PHP  Python  HTML/ 傳統(tǒng)多頁網(wǎng)站的瀏覽器更新緩存的問題

傳統(tǒng)多頁網(wǎng)站的瀏覽器更新緩存的問題

如下,頁面中有一張圖片,第一次訪問該頁面時(shí),服務(wù)器將該圖片的max-age置為10年。
不幸的是,第二天設(shè)計(jì)師修改了圖片,那么問題來了。

clipboard.png

由于用戶的瀏覽器在第一次請求該圖片的時(shí)候,強(qiáng)緩存了這張圖片,也就是說在10年內(nèi),用戶的瀏覽器并不會和服務(wù)器請求更新該圖片,而是直接從瀏覽器緩存中讀取,也就導(dǎo)致了用戶的瀏覽器無法看到最新后的圖片。

現(xiàn)在需要讓瀏覽器自動更新(用戶主動更新不算

  • 維護(hù)靜態(tài)資源的hash(感覺這是單頁應(yīng)用的解決方案,傳統(tǒng)多頁不適用啊,比如jsp頁面)
  • 時(shí)間戳,在每個(gè)靜態(tài)資源后面加個(gè)后臺的時(shí)間變量,跟hash差不多,應(yīng)該需要配套的發(fā)布系統(tǒng)吧?

大家有什么好的解決方案嗎?或者貴公司是怎么做的(傳統(tǒng)多頁網(wǎng)站)

回答
編輯回答
笨小蛋

圖片描述

這個(gè)是微博的圖片請求

2018年1月7日 05:33
編輯回答
旖襯

事不過三原則,

第1次改前端改
第2次改前端改
第3次改前端改

第4次改,后端寫個(gè)功能,讓設(shè)計(jì)師自己上傳,前端使用ajax,或者其他方法獲取banner地址,輸出圖片

2017年11月8日 13:49
編輯回答
獨(dú)白

最好與后臺配合改,依賴后臺的配置文件

2017年9月17日 19:17
編輯回答
瞄小懶

沒有前端構(gòu)建的時(shí)候,人肉版本號。

<img src="/img/banner.jpg" />

<!-- 設(shè)計(jì)師改了,前端改圖片,改代碼,發(fā)布 -->
<img src="/img/banner.jpg?v=1" />

<!-- 設(shè)計(jì)師又改了,前端改圖片,改代碼,發(fā)布 -->
<img src="/img/banner.jpg?v=2" />

<!-- 設(shè)計(jì)師又又改了,前端改圖片,改代碼,發(fā)布 -->
<img src="/img/banner.jpg?v=3" />

這種做法的缺點(diǎn)是,前端替換來圖片,很容易就忘記改 img 的 src 引用。

構(gòu)建工具并不只有 webpack 這種面向 SPA 的,前端發(fā)布的時(shí)候,gulp 工具處理一下 jsp 替換 js css 和 圖片的引用,完全可以實(shí)現(xiàn)。

所以,用構(gòu)建工具自動處理 hash 就是現(xiàn)在的正道啊

不過。。。

<!-- 
設(shè)計(jì)師又又又改了banner圖,前端改圖片,發(fā)布 
媽蛋,產(chǎn)品/運(yùn)營 你給我出來,這個(gè)圖老是改,你干脆做成可配的!

... 
...
...

然后,運(yùn)營 MM 下次做活動,背景圖可配,banner圖可配,提示語可配,這也可配,那也可配,尼瑪全家都要可配!?。?-->
2018年5月30日 22:44
編輯回答
吃藕丑

用hash就是單頁應(yīng)用解決方案?黑人問號臉。

百度首頁不是單頁應(yīng)用吧

clipboard.png

如果沒有好的構(gòu)建工具,為什么不用 etag 而使用 max-age

2017年5月26日 20:58