ASP.NET MVC на Cassini: как заставить каталог «content» возвращать 304 вместо 200? - PullRequest
13 голосов
/ 28 апреля 2009

Сценарий : у меня есть приложение ASP.NET MVC, разработанное в Visual Studio 2008. Существует корневая папка с именем «Content», в которой хранятся изображения и таблицы стилей. Когда я запускаю локально (используя Cassini) и просматриваю свое приложение, каждый ресурс из каталога «Содержимое» загружается всегда . Используя Firebug, я могу убедиться, что веб-сервер возвращает HTTP 200 («ОК»).

Желаемый : Я бы хотел, чтобы Кассини возвратил HTTP 304 («не изменен») вместо 200. Это происходит при работе сайта под IIS7.

Обоснование : Сайт, на котором я работаю, имеет большое количество статических ресурсов (часто до 40 на страницу). Просматривать сайт очень быстро на IIS7, потому что эти ресурсы (правильно) кэшируются браузером. Тем не менее, просмотр сайта на моей локальной машине мучительно медленный.

Страницы, которые отображаются менее чем за 1 секунду на IIS7, обрабатываются на Кассини более 30 секунд. На самом деле быстрее для меня загружать весь сайт каждые несколько минут и тестировать оттуда. (Да, я понимаю, что это извращенно и безумно.)

Итак: как я могу научить / обмануть Кассини, как обращаться с каталогом «Содержимое», как IIS7 ?

Ответы [ 3 ]

27 голосов
/ 28 апреля 2009

Вы уверены, что проблема в кешировании? Поскольку содержимое действительно кэшируется на моем компьютере правильно, когда я запускаю приложение на Cassini.

Я думаю, что проблема, с которой вы сталкиваетесь, может быть в недостаточной производительности Firefox при разрешении адресов IPv6, что вызывает очень раздражающую задержку при загрузке с адресами типа http://localhost:55555.

Чтобы изменить это поведение, я изменил настройку network.dns.disableIPv6 в about:config на true в Firefox. Я предлагаю попробовать это.

15 голосов
/ 10 июня 2010

У меня была похожая проблема в Chrome. Чтобы устранить эту проблему, раскомментируйте строку localhost IPv4 в вашем файле hosts. По-видимому, они прокомментированы по умолчанию в Windows 7.

127.0.0.1       localhost
#::1             localhost
2 голосов
/ 28 апреля 2009

Другой вариант для вас - просто пропустить Cassini и отладить под IIS . Это довольно просто, и вам не понадобится десять минут, чтобы начать работу. Просмотрите 20 своих страниц на Cassini, и вы все равно использовали это время;)

Одна вещь, которую я заметил, не всегда встречается в руководствах, это то, что если вы хотите выполнить отладку по адресу, отличному от http://localhost/, вам нужно вручную установить хост для локального IIS. Это делается путем добавления строки в файл hosts, расположенный по адресу

C: \ Windows \ system32 \ Drivers \ Etc \ хостов

Откройте файл с помощью блокнота (вам нужно «Запуск от имени администратора», чтобы иметь возможность сохранить, если вы используете Windows Vista и у вас включен контроль учетных записей ...) и добавьте свой хост. Например, для отладки под http://mysite/ вы добавляете

mysite         127.0.0.1
...