У меня есть метод действия, который возвращает файл и имеет только один аргумент (идентификатор).
например,
public ActionResult Icon(long id)
{
return File(Server.MapPath("~/Content/Images/image" + id + ".png"), "image/png");
}
Я хочу, чтобы браузер автоматически кэшировал это изображение при первомПолучите доступ к нему, чтобы в следующий раз не загружать все данные.
Я пытался использовать такие вещи, как OutputCacheAttribute и вручную устанавливать заголовки в ответе.то есть:
[OutputCache(Duration = 360000)]
или
Response.Cache.SetCacheability(HttpCacheability.Public);
Response.Cache.SetExpires(Cache.NoAbsoluteExpiration);
Но изображение все равно загружается каждый раз, когда я нажимаю F5 в браузере (я пробую его в Chrome и IE).(Я знаю, что он загружается каждый раз, потому что если я изменяю изображение, оно также изменяется в браузере).
Я вижу, что в ответе HTTP есть несколько заголовков, которые, очевидно, должны работать:* Контроль кэша: общедоступный, max-age = 360000
Длина содержимого: 39317
Тип содержимого: image / png
Дата: вт, 31 января 2012 г. 23: 20: 57 GMT
Срок действия истекает: Sun, 05 Feb 2012 03:20:56 GMT
Дата последнего изменения: вторник, 31 января 2012 23:20:56 GMT
Но заголовки запроса имеют следующее:
Pragma: no-cache
Есть идеи, как это сделать?
Большое спасибо