6

我理解并完全理解新的捆绑通配符{version}正则表达式,因为即使在更新后它仍会继续提取脚本和样式库。问题是我不能有效地工作。MVC4绑定通配符 - *与{version}

我以前使用下面的符号来接我的jQuery脚本:

bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
      "~/Scripts/jquery-1.*")); 

,它便拿起相匹配的星号通配符的所有文件。

但是,当我尝试以下:

 bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
        "~/Scripts/jquery-{version}.js")); 

我注意到,jQuery的文件没有被写入到_Layout.cshtml页面。

注 - 我确实使用下面的HTML代码,这两个例子:

@Scripts.Render("~/bundles/jquery") 

当我使用上述(“*”)符号的第一个例子被写入页以下几点:

<script src="/Scripts/jquery-1.7.2.js" type="text/javascript"></script> 

但是,当我使用“{版本}”表示法时,仅应该写入库的空白空间。这涉及到jquery文件以及相关的CSS样式表。

无论我是在编译DEBUG还是RELEASE模式。结果是一样的。很显然,在释放模式中使用“*”符号时,我会得到优化版本:

<script src="/bundles/jquery?v=VUv2YOeuOgHad-FHZ-vGMDu9wN1j9VZGifI1SBUUSMs1" type="text/javascript"></script> 

所以是完美主义者,所有的开发商都,我将非常愿意看到{}版本符号的工作对我来说,因为我不断更新新版本,并希望对我的部署进行控制。

任何深入了解我可能做错了什么非常感谢。

由于提前, 丹

+0

你在哪个版本的.Net下运行该项目?我相信{version}关键字对.net 4.5有一个限制。 –

+0

嗨,约翰,我确实使用.Net 4.5框架,也许这是一些问题的来源。我认为现在已经有足够的时间了,尽管自从*符号起作用并且允许我前进以来我没有检查过。 – djmarquette

+2

解决方案中是否同时包含.min.js和.js版本的jQuery文件?在以前版本的Web优化中,假定在发布模式下使用.min文件,而在调试中使用不包含.min的文件,即使文件不存在也是如此。此行为在更高版本中已更改。请参阅http://aspnetoptimization.codeplex.com/workitem/32。我不确定这是否是您的问题,因为您引用的文件名中没有.min。 – pwdst

回答

0

尝试更新Microsoft.AspNet.Web.Optimization和相关的NuGet包:Microsoft.Web.Infrastructure,WebGrease,ANTLR的。不仅检查“nuget.org”标签,还检查“全部”。