【发布时间】:2012-10-11 15:47:16
【问题描述】:
我理解并完全感谢新的捆绑通配符 {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} 符号对我有用,因为我会及时了解新版本并希望对我的部署进行这种控制。
非常感谢您对我可能做错的任何见解。
提前致谢, 丹
【问题讨论】:
-
您在哪个版本的 .Net 下运行该项目?我认为 .net 4.5 的 {version} 关键字存在限制。
-
嗨,John,我确实在使用 .Net 4.5 框架,也许这就是一些问题的来源。我认为它现在已经运行了足够长的时间,尽管我没有检查,因为 * 符号有效并允许我继续前进。
-
您在解决方案中是否同时拥有 .min.js 和 .js 版本的 jQuery 文件?在以前的 Web 优化版本中,假设在发布模式下使用 .min 文件,在调试中使用不带 .min 的文件,即使该文件不存在。此行为已在更高版本中更改。见aspnetoptimization.codeplex.com/workitem/32。我不确定这是否是您的问题,因为您引用的文件名中没有 .min。
标签: asp.net-mvc asp.net-optimization bundling-and-minification