Как указать заголовок 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 и т.д.
Ответы
Ответ 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, которые вы показываете в исходном тексте вопроса.
Ответ 3
Посмотрите проект мини статического контента.:)