設置HTML強制清除緩存
1 <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" /> 2 <meta http-equiv="Pragma" content="no-cache" /> 3 <meta http-equiv="Expires" content="0" /> 4 <meta http-equiv="X-UA-Compatible" content="IE=edge">
但是也不保證是百分百正確。在開發時候經常遇到一個問題,我們根據版本號去控制緩存問題,當我們發布新版本,使用新的版本號的時候,發現html里面引用的版本號卻是舊的版本號 ,原來是該html文件被緩存了,很多時候我們設置禁止html文件被緩存,但依然會出現被緩存的情況。
為什么我們有時候設置了<meta http-equiv="Cache-control" content="no-store">這種強制性禁止緩存,我們的頁面依然被緩存了?
因為我們只關注了客戶端,卻忽略了服務器端的設置,如果服務器端nginx設置了Cache-control,他是會覆蓋掉我們頁面中設置的的Cache-control的,所以有時候我們會發現明明css和js已經加了版本號,但是html文件里面引用的依然是舊的css和js文件,
因為服務器的緩存機制,舊的css和js並不會被立即刪除,這種情況下, 我們需要和服務器端(或者運維)人員協商一個統一的緩存策略,以保證更新可以及時得到效果,
如果溝通不順利,或者想立刻看到效果,可以試試<meta http-equiv="Pragma" content="no-cache"/> 如果服務器端沒有去設置Pragma,我們設置的Pragma依然有效。