Почему FireFox 3.6.8 не кэширует статическое содержимое с сервера разработчиков asp.net? - PullRequest
5 голосов
/ 20 августа 2010

Я работаю на веб-сайте asp.net, как обычный пользователь, мы используем сервер разработчика asp.net во время кодирования и тестирования. Сегодня я обнаружил, что Firefox не кеширует статические файлы моего сайта, поскольку наше приложение довольно большое, что делает загрузку страниц очень медленной. Я проверил Firefox о: кеш, все настройки статического кеша файлов выглядят как

           Key: http://localhost:26851/App_Layout/icons/actions/email/folder.png
     Data size: 871 bytes
   Fetch count: 1
 Last modified: 2010-08-19 11:59:46
       Expires: 1969-12-31 16:00:00

           Key: http://localhost:26851/Framework/ScriptLibrary/JQueryPlugins/ui.mouse.js
     Data size: 5079 bytes
   Fetch count: 1
 Last modified: 2010-08-19 11:59:39
       Expires: 1969-12-31 16:00:00

FireBug показывает заголовок, подобный этому

Server  ASP.NET Development Server/9.0.0.0
Date    Thu, 19 Aug 2010 22:10:27 GMT
X-AspNet-Version    2.0.50727
Cache-Control   public
Etag    "1CB3F32C834A880"
Content-Type    text/css
Content-Length  1775
Connection  Close

Firebug имеет еще одну вкладку под названием «кеш», информация:

Last Modified   Thu Aug 19 2010 15:10:27 GMT-0700 (Pacific Daylight Time)
Last Fetched    Thu Aug 19 2010 15:10:27 GMT-0700 (Pacific Daylight Time)
Expires Wed Dec 31 1969 16:00:00 GMT-0800 (Pacific Standard Time)
Data Size   1775
Fetch Count 10
Device  disk

Срок действия истекает до 1969-12-31, я думаю, именно поэтому они загружаются очень долго. Я использую Visual Studio 2008, Windows 7 машина. Приложение отлично работает в IE, содержимое правильно кешируется.

Кто-нибудь видел такое поведение раньше?

Ответы [ 5 ]

4 голосов
/ 27 августа 2010

Вам нужно ввести Expires header, чтобы Firefox кешировал файлы.

В противном случае, как вы думаете, сколько времени потребуется для кэширования файлов?

3 голосов
/ 01 сентября 2010

Спасибо всем за помощь в этом вопросе.Я считаю, что нашел причину, почему FireFox кажется очень медленным на окне 7-й коробки.Я не заметил медлительности при использовании Windows XP.

Прежде всего, Firefox НЕ будет кэшировать какие-либо ресурсы с сервера веб-разработчиков asp.net.этот факт не меняется в XP или Windows 7. Когда я использую Firebug, проверяю загрузку ресурса сегодня, я заметил, что поиск DNS занимает пару секунд.затем я обнаружил, что для установки по умолчанию в окне 7 файл HOSTS в windows \ system32 \ driver \ etc не соответствует записи DNS 127.0.0.1 localhost.Добавив эту строку в файл HOSTS.мой сайт работает так же быстро, как и раньше.

0 голосов
/ 29 августа 2010

Вы также можете разместить страницу на локальном IIS WebServer вместо того, чтобы запускать ее на VS Development Server. В IIS вы можете указать настройки заголовка срока действия в соответствии с вашими потребностями.

0 голосов
/ 27 августа 2010

вы можете попробовать добавить один из них в функцию загрузки вашей страницы -

опция 1

        Response.ClearHeaders();
        Response.AppendHeader("Cache-Control", "no-cache"); //HTTP 1.1
        Response.AppendHeader("Cache-Control", "private"); // HTTP 1.1
        Response.AppendHeader("Cache-Control", "no-store"); // HTTP 1.1
        Response.AppendHeader("Cache-Control", "must-revalidate"); // HTTP 1.1
        Response.AppendHeader("Cache-Control", "max-stale=0"); // HTTP 1.1 
        Response.AppendHeader("Cache-Control", "post-check=0"); // HTTP 1.1 
        Response.AppendHeader("Cache-Control", "pre-check=0"); // HTTP 1.1 
        Response.AppendHeader("Pragma", "no-cache"); // HTTP 1.1 
        Response.AppendHeader("Keep-Alive", "timeout=3, max=993"); // HTTP 1.1 
        Response.AppendHeader("Expires", "Mon, 26 Jul 1997 05:00:00 GMT"); // HTTP 1.1

опция 2

Response.Cache.SetExpires(DateTime.UtcNow.AddMinutes(-1))
Response.Cache.SetCacheability(HttpCacheability.NoCache)
Response.Cache.SetNoStore()
0 голосов
/ 24 августа 2010

ASP.net Dev Sever

В соответствии с моим запуском Fiddler2 , он кэширует файлы, т. Е. Ответы 304 (не измененные) выполняются

  • ScriptResource.axd
  • WebResource.axd

То же самое происходит в IE 8 и FF 3.6.8 IE8 должен быть установлен на Автоматическую проверку новых версий страницы для этогопроисходят.


IIS

Запуск его на IIS приводит к кешированию статического содержимого как в FF, так и в IE.


Это кэширование происходит из-за того, что веб-сервер добавляет к ответу заголовок последний измененный .

Вы можете заставить fiddler прослушивать localhost, используяlocalhost. вместо (http://weblogs.asp.net/asptest/archive/2008/08/13/tip-on-using-fiddler-with-cassini-and-localhost.aspx).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...