mvc 4 bundle и минификация - не получается 304 (не модифицируется) при обновлении - PullRequest
4 голосов
/ 21 марта 2012

Я испытываю связывание и минификацию MVC 4 Beta через System.Web.Optimization.Я надеялся, что сайт, для которого я его использую, получит 304 (Not Modified), когда я нажму кнопку обновить.

Я думал, что смысл src для моего js-пакета, /desktop-js-bundle?v=D33JhbMl9LHkXSPBj1tfRkRI0lHeYVmbSMQqD59bXHg1 (с этой версией #), заключается в том, что версия # изменилась только при изменении одного из файлов в пакете на сервере.Тем не менее, каждый раз, когда я нажимаю кнопку обновления и отслеживаю вкладку Сеть в Chrome F12 , он отправляет запрос с тем же номером версии и получает статус 200.

Почему непросто верните 304 ?, что уменьшит нагрузку и увеличит приличную сумму.Спасибо!

Ответы [ 2 ]

2 голосов
/ 21 марта 2012

Почему он просто не возвращает 304?

Потому что когда вы нажимаете F5 , вы теряете кэш вашего браузера.В основном ваш тест имеет недостатки.Вы должны размещать ссылки на этот пакет на разных страницах (используя тег <script>).Затем вы должны перейти на эти страницы с помощью гиперссылок.Теперь обратите внимание на вкладку Network.

Также убедитесь, что вы работаете в режиме выпуска.


ОБНОВЛЕНИЕ:

ОК, после того, как выкопаете немного больше, вот чтоЯ узнал.Код состояния 200 HTTP действительно всегда отправляется, что является нормальным.Но во второй раз пакет выбирается из кэша.

Вот первый запрос:

enter image description here

Мы можем видеть, что в этом случае пакет приходит изсервер с заголовками ответов HTTP-кэша.

А вот второй запрос:

enter image description here

На этом втором снимке экрана ясно видно, что пакет подается из кэша,Обратите внимание, как вся линия отображается серым цветом.Код состояния HTTP 200 вымышленный => клиент даже не отправляет HTTP-запрос на сервер, поскольку он получает пакет непосредственно из своего кэша.

И я могу наблюдать то же самое в Google Chrome.

Для первого запроса:

enter image description here

И для второго запроса:

enter image description here

1 голос
/ 30 сентября 2015

У меня была такая же проблема, и проблема была с пакетом Microsoft.AspNet.Web.Optimization. Как описано здесь: http://aspnetoptimization.codeplex.com/workitem/127, версии 1.1.2 - 1.1.3 затронуты. После перехода на 1.1.1 он работает нормально , а 304 возвращается для неизмененных ресурсов после обновления.

Это можно сделать в консоли диспетчера пакетов с помощью следующих команд:

PM> Uninstall-Package "Microsoft.AspNet.Web.Optimization"
PM> Install-Package "Microsoft.AspNet.Web.Optimization" -Version 1.1.1
...