最近、サイトに HTTP ヘッダーを追加して、特定の JS/CSS URL に遭遇するたびにサーバーに確認するようブラウザに通知しました。私はそれをテストしましたが、完全に動作します。すべてのブラウザが条件付きGET
リクエストを行うようになりました。
ただし、ここに問題があります。人々はまだ古いヘッダーをキャッシュしています。多かれ少なかれブラウザに「これを永久にキャッシュします。わざわざ更新を求めないでください!」と伝えるヘッダー。これは、ハード リフレッシュで無効にすることができます。コードを公開した後、バグのあるページで F5 を押してくださいと、全員に連絡する必要はありません。
HTMLドキュメント自体に「ブラウザ、JS / CSSファイルのヘッダーを無視して、含まれているすべてのファイルの最新バージョンをダウンロードしてください」と言うHTTPヘッダー/ HTMLメタタグはありますか?このページ"?
最終的には、キャッシュをクリアするか、自分で更新することを学ぶ人が増えるにつれて、この問題は自然に解決します。でも、今のうちに直した方がいいと思います。それから約 1 か月後に、HTML レベルのヘッダーを削除して、必要な場所 (リソースごと) にキャッシュを取得します。
編集:リソースの名前を変更したり、クエリパラメーターを追加したりしたくありません。これは私たちが使用していたもの (?v=18、?v=19 など) であり、リソースを更新するたびにその数を増やすのは面倒でした。プログラムでそれを行うことでさえ、理想的な解決策ではありません。特に、サーバーが正しく構成されているためです。HTTP レベルで行う方が理にかなっているので、アクセス方法 (ページに含まれているか、アドレス バーから直接、またはその他の方法) に関係なく機能します。