ブラウザによるhtmlのキャッシュをブロック

893 ワード

問題の由来:バージョンが更新された後、プロジェクトがオンラインにパッケージ化され、パッケージ化されたjs、cssなどの静的リソースの名前が変更されました(パッケージツール)、それらのキャッシュを心配する必要はありませんが、htmlファイルは変更されていません(index.htmlなど)、ブラウザはキャッシュされたhtmlファイルを使用し、各エラーを招きます
 
1.バックエンドgetリクエストのresponseリクエストヘッダの設定
response.setDateHeader("Expries", -1);
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Pragma", "no-cache");

 
2.フロントエンドjsを使用してhrefにランダムパラメータを追加します(hashモードの場合、ランダムパラメータは#の前に配置する必要があります)
if (!window.name) {
  location.href += "?random=" + Date.now();
  window.name = "reloaded";
}

 
3.htmlのheadにmetaを追加(ブラウザがキャッシュしたい場合は無効)