Подтвердить что ты не робот

Как указать заголовок HTTP-истечения? (ASP.NET MVC + IIS)

Я уже использую кэширование вывода в своем приложении ASP.NET MVC.

Скорость страницы говорит мне указывать истечение кеша HTTP для css и изображений в заголовке ответа.

Я знаю, что объект Response содержит некоторые свойства, которые управляют истечением кеша. Я знаю, что эти свойства могут использоваться для управления кэшированием HTTP для ответа, который я обслуживаю из своего кода:

Response.Expires
Response.ExpiresAbsolute
Response.CacheControl

или, альтернативно,

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

Вопрос: как установить заголовок Expires для ресурсов, которые обслуживаются автоматически, например. изображения, css и т.д.

4b9b3361

Ответ 1

Найдено:

Мне нужно указать кеш клиента для статического содержимого (в web.config).

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

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

Ответ 2

Если вы хотите сделать это из кода для возвращаемого ресурса (т.е. не статического файла, обслуживаемого из IIS), вам лучше использовать Response.Cache:

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

Я знаю, что не совсем то, о чем вы просите, но я нашел этот вопрос через Google и подумал, что другим может понравиться этот ответ, поскольку он связан с API, которые вы показываете в исходном тексте вопроса.