2010-08-03 2 views
0

Я использую следующий код для записи заголовка кэша в * .png-запросах: response.Buffer = false; response.BufferOutput = false;Как работает кеш asp.net MVC и кеш Firefox?

 // Emit content type and encoding based on the file extension and 
     // whether the response is compressed 
     response.ContentType = MimeMapping.GetMimeMapping(physicalFilePath); 
     if (mode != ResponseCompressionType.None) 
      response.AppendHeader("Content-Encoding", mode.ToString().ToLower()); 
     response.AppendHeader("Content-Length", count.ToString()); 

     // Emit proper cache headers that will cache the response in browser's 
     // cache for the default cache duration 
     response.Cache.SetCacheability(HttpCacheability.Public); 
     response.Cache.AppendCacheExtension("must-revalidate, proxy-revalidate"); 
     response.Cache.SetMaxAge(DEFAULT_CACHE_DURATION); 
     response.Cache.SetExpires(DateTime.Now.Add(DEFAULT_CACHE_DURATION)); 
     response.Cache.SetLastModified(lastModified); 

Но каждый раз, когда я обновляю страницу, содержащую URL-адрес PNG, он снова отправляется на веб-сервер. Кажется, что заголовок кэша не работает, и, что еще хуже, он делает кеш браузера тоже неработоспособным.

Я использую asp.net mvc. Может ли кто-нибудь указать мне правильное направление? Благодаря !

ответ

0

A POST будет никогда не будет быть кешированным, любым браузером или сервером. Если браузер выдает запрос POST, то сервер выполнит его. Вы не можете кэшировать результаты. Единственный способ не POST не выпускать POST.

Смежные вопросы