URLルーティングを使用したWebformsプロジェクトがあります。画像とcssファイルの例外ルートを次のように定義しました
routes.Add("IgnoreImages", new Route("img/{*pathInfo}", new StopRoutingHandler()));
routes.Add("IgnoreCss", new Route("css/{*pathInfo}", new StopRoutingHandler()));
したがって、静的ファイルはIISによって直接提供され、ルーティングはバイパスされる必要があります。
Fiddlerで画像の応答を確認する場合、キャッシュ見出しの下にある唯一のキーは日付です。不足しているのは、Cache-control:max:ageキーです。静的ファイルのキャッシュポリシーを指定するにはどうすればよいですか?アプリケーションはIIS7.5で実行されます。
解決策は、web.configファイルのsystem.webserver
セクションを使用して、サーバーのキャッシュ(および圧縮)を構成することです。開始点は次のとおりです。 http://www.iis.net/ConfigReference/system.webServer/staticContent/clientCache
例:
<configuration>
<system.webServer>
<staticContent>
<clientCache cacheControlMode="UseMaxAge"
cacheControlMaxAge="1.00:00:00" /> <!-- 1 day -->
</staticContent>
</system.webServer>
</configuration>
Darioの答えはほとんどの方法で私を導きましたが、属性を<clientCache>
、cacheControlCustom="public"
に追加する必要がありました。そうしないと、IISはCache-Controlヘッダーをブラウザーに送信しませんでした。 この回答 を参照してください。