Автоматическое обновление ссылок на сценарии при обновлении jquery и modernizr с помощью NuGet

Заметив, что моя проверка на стороне клиента перестала работать, я решил, что мои ссылки на html-скрипты для jquery и modernizr устарели. Я сразу понял, что это произошло потому, что я недавно обновил все свои пакеты NuGet, поэтому номера версий больше не совпадали.

Вот рассматриваемая разметка (после ручного обновления номеров версий):

<script src="@Url.Content("~/Scripts/jquery-1.6.3.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/modernizr-2.0.6.min.js")" type="text/javascript"></script>

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

Два вопроса:

  • Что я могу сделать, чтобы улучшить процесс обновления, чтобы номера версий обновлялись автоматически или, по крайней мере, чтобы получать предупреждение о том, что мои ссылки на скрипты неверны? (Примечание: у меня уже включен MvcBuildViews.)

  • Почему jquery и modernizr имеют номера версий в имени файла, а другие скрипты (например, jquery.validate и jquery.validate.unobtrusive) — нет? Похоже, проблема может быть решена путем исключения номеров версий из имен файлов.


person devuxer    schedule 18.09.2011    source источник
comment
проверьте этот stackoverflow .com/questions/5092516/   -  person Samich    schedule 19.09.2011


Ответы (2)


Насколько я знаю, изменение файлов через nuget невозможно. Это тоже было бы небезопасно.

В настоящее время я объединяю свои файлы js в один, и когда я обновляю свои файлы jquery, я иду туда и меняю их.

Если JQuery не включает номер версии файла, это приведет к некоторым сбоям в вашем коде, если произойдут какие-либо критические изменения.

person tugberk    schedule 18.09.2011
comment
+1 за объяснение, почему было бы плохой идеей не изменять файлы и почему JQuery включает номер версии. Однако я надеялся найти реальное решение — какой-нибудь способ предупредить меня о том, что у меня плохие ссылки на сценарии. Я случайно обнаружил, что elmah отлично подходит для этой цели. Я написал это как ответ на случай, если кто-то еще столкнется с этим. - person devuxer; 19.09.2011
comment
Что касается решения, если вы поймаете ошибки приложения с помощью своего логгера (например, log4net), вы увидите ошибки «файл не найден». Вы даже можете настроить Assert() на срабатывание, если произойдет ошибка приложения с jquery в тексте. - person Darren Griffith; 30.11.2012

Я только что установил elmah для регистрации ошибок на своем веб-сайте. Оказывается, если тег script в html ссылается на несуществующий файл, это вызовет ошибку в elmah. Поскольку я настроил elmah на отправку мне электронных писем при обнаружении ошибок, это обеспечивает достаточно приличный механизм оповещения об устаревших ссылках на скрипты. Получение фактической ошибки компиляции или предупреждения было бы предпочтительнее, но elmah, по крайней мере, не позволяет проблеме остаться незамеченной.

person devuxer    schedule 19.09.2011