キャッシュの無効化手法に関する質問があります... ブラウザのキャッシュ (css、画像など) を自動的に無効にするメカニズムを Web サイトに実装しようとしています。Web サイトを更新する (画像やスタイルを変更する) たびに、プログラムでブラウザーのキャッシュを無効にできるようにしたいと考えています。
例: 現在のリリースでは、css と一部の画像が変更されています。この状況では、更新が完了した後、ユーザーが Web サイトへの要求を実行すると、ブラウザーのキャッシュが自動的に無効になり、新しい画像とスタイルの再ダウンロードが強制されるようにする必要があります。これは、クライアントの最初のリクエストに対してのみ行う必要があります...次のものはキャッシュから取得する必要があります(したがって、no-cache プラグマを設定することは問題外です)。
これが私が試したことです: BeginRequest イベントハンドラーで、次の行を追加しました:
Response.Cache.SetCacheability(HttpCacheability.ServerAndPrivate);
Response.Cache.SetETag("\"e111293b17594f1487d136ea7e9314ac\"");
これにより、応答ヘッダーに ETag が設定されます。この ETag をリリースごとに変更し、リクエストごとに設定すると、キャッシュが無効になると思いましたが、そうではないようです。Live HTTP ヘッダーを使用して結果を確認し、応答用に ETAG が正しく設定されていますが、CSS と画像は引き続きキャッシュから取得されます。
これをどのように達成できるか、またはそれを達成できるかどうかについてのアイデアはありますか?