Я не могу объяснить, почему мое приложение не кэширует первую страницу.
Я поставил дату на странице: @DateTime.Now
Вот действие домашнего контроллера
[OutputCache(Duration = 60)]
public ActionResult Index()
{
return View();
}
Однако кеширование не работает, и на главной странице постоянно меняется дата.
Я попытался уменьшить титульную страницу и связанные с ней макеты до минимума, чтобы штамп был только DateTime.Now.
Я проверил все базовые контроллеры на наличие кода отключения кеширования.
Также проверил global.asax
Проверил web.config на предмет какой-либо конфигурации кеширования - нет.
Осмотрел со скрипачом. Вот заголовок ответа.
HTTP/1.1 200 OK
Cache-Control: public, no-cache="Set-Cookie", max-age=60
Content-Type: text/html; charset=utf-8
Expires: Wed, 04 Mar 2015 05:20:45 GMT
Last-Modified: Wed, 04 Mar 2015 05:19:45 GMT
Vary: *
Я также пробовал разные браузеры, в которых не было изменено никаких настроек локального кеширования.
Также пробовали развернуть приложение на сценическом сервере, чтобы оно не запускалось на моей машине разработчика.
Попробовали создать новое приложение asp.net mvc. Это сработало. В некоторой степени полезно, по крайней мере, сказать мне, что технология работает.
В чем может быть проблема?
text/html
таким образом, что он даже не будет повторно запрашивать его с сервера, вряд ли будет работать в большинстве современных браузеров. Если вы хотите, чтобы ваша отметка времени не менялась в течение 60 секунд, сохраните кэшированную копию на сервере:[OutputCache(Duration = 60, Location = OutputCacheLocation.Server)]
. - person haim770   schedule 12.03.2015