ASP.NET MVC на Cassini: как заставить каталог "content" возвращать 304 вместо 200?
Сценарий: у меня есть приложение ASP.NET MVC, разработанное в Visual Studio 2008. Существует корневая папка с именем "Content", в которой хранятся изображения и таблицы стилей. Когда я запускаю локально (используя Cassini) и просматриваю свое приложение, каждый ресурс из каталога "Content" всегда загружается. Используя Firebug, я могу убедиться, что веб-сервер возвращает HTTP 200 ("ОК").
Желаемый: я хотел бы, чтобы Кассини возвратил HTTP 304 ("не измененный") вместо 200. Это поведение при запуске сайта под IIS7.
Причина: сайт, на котором я работаю, имеет большое количество статических ресурсов (часто до 40 на страницу). Просматривать сайт очень быстро на IIS7, потому что эти ресурсы (правильно) кэшируются браузером. Тем не менее, просмотр сайта на моей локальной машине мучительно медленный.
Для страниц, которые отображаются в IIS7 менее чем за 1 секунду, требуется более 30 секунд для рендеринга в Cassini. Для меня быстрее загружать весь сайт каждые несколько минут и тестировать оттуда. (Да, я признаю, что это извращенно и безумно.)
Итак: как я могу научить / обмануть Кассини, как обращаться с каталогом "Контент", как это делает IIS7?
3 ответа
Вы уверены, что проблема в кешировании? Потому что содержимое действительно правильно кэшируется на моем компьютере, когда я запускаю приложение на Cassini.
Я думаю, что проблема, с которой вы столкнулись, может заключаться в недостаточной производительности Firefox при разрешении адресов IPv6, что вызывает очень раздражающую задержку при загрузке с адресами, такими как http://localhost:55555/.
Что я сделал, чтобы изменить это поведение, так это изменить network.dns.disableIPv6
предпочтение на about:config
в true
на Firefox. Я предлагаю попробовать это.
У меня была похожая проблема в Chrome. Чтобы устранить эту проблему, раскомментируйте строку localhost IPv4 в вас hosts
файл. По-видимому, они прокомментированы по умолчанию в Windows 7.
127.0.0.1 localhost
#::1 localhost
Другой вариант - просто пропустить Cassini и отладить под IIS. Это довольно просто и не займет у вас десяти минут, чтобы начать работу. Просмотрите 20 своих страниц на Кассини, и вы все равно использовали это время;)
Одна вещь, которую я заметил, не всегда в руководствах, это то, что если вы хотите отладить по другому адресу, чем http://localhost/
вам нужно вручную установить хост для локального IIS. Это делается путем добавления строки в hosts
файл, расположенный по адресу
C:\Windows\system32\ Drivers\ Etc\ хостов
Откройте файл с помощью блокнота (вам нужно "Запуск от имени администратора", чтобы иметь возможность сохранить, если вы используете Windows Vista и у вас включен контроль учетных записей...) и добавьте свой хост. Например, для отладки под http://mysite/
вы добавляете
mysite 127.0.0.1