Vue SPA 如何解決瀏覽器緩存問題
Vue SPA 解決瀏覽器緩存
如何讓發(fā)布到線上的 vue 單頁應(yīng)用能及時(shí)更新到瀏覽器,而無需用戶強(qiáng)制刷新頁面呢?
因?yàn)?js、css、圖片等資源文件名帶有 hash 值,只要文件名變了就會更新,所以可以設(shè)置緩存,但 html 文件名沒有加 hash 值,所以不能緩存該文件。
在 nginx.conf 中設(shè)置
? ? ? ? location / {
? ? ? ? ? ? root html/dist;
? ? ? ? ? ? index index.html index.htm;
?? ??? ??? ?if ($request_filename ~* .*\.(js|css|woff|png|jpg|jpeg)$) {
?? ??? ??? ??? ?expires ? ?100d; ?# js、css、圖片緩存100天(因?yàn)槲募衕ash)
?? ??? ??? ??? ?#add_header Cache-Control "max-age = 8640000"; # 或者設(shè)置max-age
?? ??? ??? ?}
?? ??? ??
?? ??? ??? ?if ($request_filename ~* .*\.(?:htm|html)$) {
?? ??? ??? ??? ?add_header Cache-Control "no-store"; ?# html不緩存(因?yàn)槲募麤]有加hash)
?? ??? ??? ?}
? ? ? ? }通過上述配置,讓瀏覽器不緩存 html 文件。
Vue 微信瀏覽器緩存問題
1.試過js、css打包時(shí)添加時(shí)間戳,因?yàn)榇虬竺看味际切旅值奈募?,所以感覺加不加時(shí)間戳都沒有效果 試了一下果然
原因應(yīng)該是微信瀏覽器緩存了index.html, 所以打開緩存的頁面根本沒有任何請求
2.試過index.html添加meta標(biāo)簽,設(shè)置不緩存頁面,親測也無效
3.index.html 試過添加參數(shù),本以為微信瀏覽器會認(rèn)為是一個(gè)新頁面, 但是無果
4.js 間隔時(shí)間自動(dòng)刷新window.location.href 體驗(yàn)不好,還是去掉了
5.既然前端試了很多種辦法 還是無效,只能在服務(wù)端配置了,
location = /index.html {?
? ? add_header Cache-Control "no-cache, no-store";?
}這句話應(yīng)該也是讓index.html不緩存,嘗試了下,這種辦法沒有兼容問題,安卓和ios每次打開頁面都及時(shí)更新了
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
axios全局請求參數(shù)設(shè)置,請求及返回?cái)r截器的方法
下面小編就為大家分享一篇axios全局請求參數(shù)設(shè)置,請求及返回?cái)r截器的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-03-03
vue+elementui實(shí)現(xiàn)下拉表格多選和搜索功能
這篇文章主要為大家詳細(xì)介紹了vue+elementui實(shí)現(xiàn)下拉表格多選和搜索功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-11-11
詳解Vue+elementUI build打包部署后字體圖標(biāo)丟失問題
這篇文章主要介紹了詳解Vue+elementUI build打包部署后字體圖標(biāo)丟失問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07

