我理解并完全理解新的bundle wildcard {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>
然而,当我使用“{version}”符号时,只有一个空的空间,应该写入库。这适用于jquery文件以及相关的CSS样式表。
我是否正在编译DEBUG或RELEASE模式并不重要。结果是一样的。显然在发布模式下,我会在使用“*”表示法时获得优化版本:
<script src="/bundles/jquery?v=VUv2YOeuOgHad-FHZ-vGMDu9wN1j9VZGifI1SBUUSMs1" type="text/javascript"></script>
因此,作为所有开发人员的完美主义者,我非常希望看到{version}符号对我有用,因为我确实在新版本上保持最新状态,并希望在我的部署中实现这种控制。
非常感谢您对我可能做错的任何见解。
提前致谢, 丹
答案 0 :(得分:0)
尝试更新Microsoft.AspNet.Web.Optimization和相关的NuGet包:Microsoft.Web.Infrastructure,WebGrease,Antlr。不仅仅是检查&#34; nuget.org&#34;选项卡,还有&#34;全部&#34;。