場景
由于vue項目上線后蝗敢,用戶頁面異常日缨,打開 F12 顯示很多請求出現(xiàn)404捅僵,原因大概率在于當(dāng)前頁面使用了瀏覽器的緩存家卖,請求舊的資源失敗。
瀏覽器緩存機制解析
http://www.reibang.com/p/7a3fa1079982
nginx服務(wù)器緩存機制解析
https://blog.csdn.net/u013032097/article/details/91435268
解決辦法
1庙楚、在vue項目中解決
?在入口文件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為你的代理的項目名) {
? ? add_header Cache-Control "no-cache, no-store";
}
如果nginx上有 proxy_cache 的配置,也考慮刪掉酪捡,這是nginx的服務(wù)器緩存
3叁征、如果是部署在Tomcat上
tomcat稍微麻煩點,需要開發(fā)并配置一個過濾器(Filter)逛薇,如果你只懂前端捺疼,那可能需要找后端的兄弟幫忙了。
1永罚、首先我們要用java寫個過濾器:
注意:路徑要和第三步的配置保持一致
2啤呼、然后我們把這個過濾器打成jar包,名字隨便呢袱,放在tomcat/lib目錄下即可官扣。
3、最后羞福,我們需要修改配置文件tomcat/conf/web.xml醇锚,在末尾</web-app>的上方增加以下代碼:
MyFilter是你給過濾器起的名字,可隨便改
也沒有太麻煩坯临,應(yīng)該大部分同學(xué)都能搞定焊唬。
4、ctrl+f5強制刷新瀏覽器看靠,這是對于用電腦瀏覽器的用戶來說
強制刷新 (Ctrl + F5):瀏覽器不使用緩存赶促,因此發(fā)送的請求頭部均帶有Cache-control: no-cache(為了兼容,還帶了Pragma: no-cache),服務(wù)器直接返回 200 和最新內(nèi)容挟炬。