場(chǎng)景
由于vue項(xiàng)目上線后,用戶頁面異常,打開 F12 顯示很多請(qǐng)求出現(xiàn)404,原因大概率在于當(dāng)前頁面使用了瀏覽器的緩存,請(qǐng)求舊的資源失敗。
瀏覽器緩存機(jī)制解析
http://www.itdecent.cn/p/7a3fa1079982
nginx服務(wù)器緩存機(jī)制解析
https://blog.csdn.net/u013032097/article/details/91435268
解決辦法
1、在vue項(xiàng)目中解決
?在入口文件index.html添加:
<meta http-equiv="pragram" content="no-cache">
<meta http-equiv="cache-control" content="no-cache, no-store, must-revalidate">
<meta http-equiv="expires" content="0">
2、如果是部署在nginx上
在nginx的配置文件 nginx.config添加:
location = /index.html {
? ? add_header Cache-Control "no-cache, no-store";
}
如果是用nginx做反向代理的,這么加
location = /xx(xx為你的代理的項(xiàng)目名) {
? ? add_header Cache-Control "no-cache, no-store";
}
如果nginx上有 proxy_cache 的配置,也考慮刪掉,這是nginx的服務(wù)器緩存
3、如果是部署在Tomcat上
tomcat稍微麻煩點(diǎn),需要開發(fā)并配置一個(gè)過濾器(Filter),如果你只懂前端,那可能需要找后端的兄弟幫忙了。
1、首先我們要用java寫個(gè)過濾器:
注意:路徑要和第三步的配置保持一致
2、然后我們把這個(gè)過濾器打成jar包,名字隨便,放在tomcat/lib目錄下即可。
3、最后,我們需要修改配置文件tomcat/conf/web.xml,在末尾</web-app>的上方增加以下代碼:
MyFilter是你給過濾器起的名字,可隨便改
也沒有太麻煩,應(yīng)該大部分同學(xué)都能搞定。
4、ctrl+f5強(qiáng)制刷新瀏覽器,這是對(duì)于用電腦瀏覽器的用戶來說
強(qiáng)制刷新 (Ctrl + F5):瀏覽器不使用緩存,因此發(fā)送的請(qǐng)求頭部均帶有Cache-control: no-cache(為了兼容,還帶了Pragma: no-cache),服務(wù)器直接返回 200 和最新內(nèi)容。