解決網(wǎng)站部署后,需要瀏覽器刷新才能加載新版資源的問題

現(xiàn)象

公司的項目使用webpack打包,會自動在生成的資源文件名中加入hash,防止瀏覽器緩存。
但是有一個現(xiàn)象一直很令人費(fèi)解:項目部署后,再次打開瀏覽器=>輸入url=>回車, 會發(fā)現(xiàn)加載的仍然是舊版網(wǎng)頁,只有按F5刷新后才會正常加載。

原因

經(jīng)過觀測瀏覽器network,發(fā)現(xiàn)該問題產(chǎn)生的問題如下:
當(dāng)瀏覽器向服務(wù)器發(fā)起對index.html的請求時,服務(wù)器的返回頭中沒有對緩存進(jìn)行設(shè)置,于是在瀏覽器的下一次非刷新請求時,就會自動在本地緩存中拿到之前緩存好的index.html,而且index.html中引用的資源文件也都是已經(jīng)在瀏覽器中緩存好的,所以此時瀏覽的就一定是舊版網(wǎng)站。

解決

設(shè)置Nginx配置文件中的location項即可,使其返回index.html時,自動添加不要緩存的響應(yīng)頭,這樣每次瀏覽器就都會去服務(wù)器拿最新的index.html了。
這里偷懶了,只匹配了html(返回資源路徑中存在“html”就會帶相應(yīng)的緩存響應(yīng)頭),正確一點的做法其實是“html$”,匹配html結(jié)尾的資源。

  location / {
    index index.html;
    if ($uri ~* "html") {
        add_header Cache-Control "no-cache, no-store, max-age=0, must-revalidate";
    }
  }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1、通過CocoaPods安裝項目名稱項目信息 AFNetworking網(wǎng)絡(luò)請求組件 FMDB本地數(shù)據(jù)庫組件 SD...
    陽明AI閱讀 16,196評論 3 119
  • 中秋之夜賞風(fēng)光,圓月畫萌妝。穿行云海忽現(xiàn),暗淡不見東江。 思故舊,念家鄉(xiāng),是迷茫。醉彈琴瑟,欲訴衷情,音樂凄涼。 ...
    愛琴島閱讀 358評論 1 9
  • 從最初看到這句話,我不過無比正確的生活。我又一種被點燃的感覺。沖動與熱血,莫名的被吸引,覺得一定要了解一下,一...
    丁小丁DIY閱讀 535評論 1 1
  • 簡評:作者按照時間軸,為大家分解一下,前天 Facebook 全球開發(fā)者大會(F8)第一天,到底說了什么?劇透,核...
    極小光閱讀 1,007評論 1 14
  • 熬夜追完韓劇《我親愛的朋友們》,這是大概10年里面看的第一部韓劇。劇講的不是那些美女和小清新的故事。相反,故事講述...
    WEI_曹蕾閱讀 831評論 2 2

友情鏈接更多精彩內(nèi)容