使用NuGet更新jquery和modernizr时自动更新脚本引用

时间:2011-09-18 20:20:49

标签: jquery asp.net asp.net-mvc nuget maintenance

在注意到我的客户端验证已停止工作后,我确定我的jquery和modernizr的html脚本引用已过时。我立刻意识到这是因为我最近更新了所有的Nu​​Get包,所以版本号不再匹配。

以下是有问题的标记(手动更新版本号后):

<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)则没有?看起来这个问题可以通过保留文件名之外的版本号来解决。

2 个答案:

答案 0 :(得分:1)

据我所知,无法通过nuget修改文件。那也是不安全的。

我目前正在将我的js文件捆绑成一个,当我更新我的jquery文件时,我去那里更改它。

如果JQuery不包含文件版本号,那么如果发生任何重大更改,这将导致代码中断。

答案 1 :(得分:1)

我刚刚安装了elmah来记录我网站上的错误。事实证明,如果html中的script标记引用了不存在的文件,则会触发elmah上的错误。由于我将elmah配置为在遇到错误时向我发送电子邮件,因此这为过时的脚本引用提供了足够好的警报机制。收到实际的编译错误或警告会更好,但elmah至少可以防止问题被忽视。