web-dev-qa-db-ja.com

HTTP有効期限ヘッダーの指定方法(ASP.NET MVC + IIS)

ASP.NET MVCアプリケーションで既に出力キャッシュを使用しています。

ページ速度 は、応答ヘッダーでcssと画像のHTTPキャッシュ有効期限を指定するように指示します。

Responseオブジェクトには、キャッシュの有効期限を制御するいくつかのプロパティが含まれていることを知っています。私は、これらのプロパティを使用して、応答するHTTPキャッシュを制御できることを知っています。 私のコードから提供:

Response.Expires
Response.ExpiresAbsolute
Response.CacheControl

または代わりに

Response.AddHeader("Expires", "Thu, 01 Dec 1994 16:00:00 GMT");

質問は 自動的に提供されるリソースにExpiresヘッダーを設定するにはどうすればよいですか。画像、CSSなど?

52
Marek

それを見つけた:

(web.configで)静的コンテンツのクライアントキャッシュを指定する必要があります。

<configuration>
  <system.webServer>
    <staticContent>
      <clientCache cacheControlCustom="public" 
      cacheControlMaxAge="12:00:00" cacheControlMode="UseMaxAge" />
    </staticContent>
   </system.webServer>
</configuration>

from http://www.iis.net/ConfigReference/system.webServer/staticContent/clientCache

77
Marek

返すリソースのコードから実行する場合(つまり、IISから提供される静的ファイルではない場合)、Response.Cache

Response.Cache.SetExpires(DateTime.Now.AddYears(1));
Response.Cache.SetCacheability(HttpCacheability.Public);

私はそれがまさにあなたが求めているものではないことを知っていますが、私はGoogleを介してこの質問を見つけました。

31
Drew Noakes

ミニ静的コンテンツ配信 プロジェクトを見てください。 :)

2
dariol