MVC4捆绑通配符 - *与{版本}

时间:2012-10-21 19:10:22

标签: asp.net-mvc asp.net-optimization bundling-and-minification

我理解并完全理解新的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}符号对我有用,因为我确实在新版本上保持最新状态,并希望在我的部署中实现这种控制。

非常感谢您对我可能做错的任何见解。

提前致谢, 丹

1 个答案:

答案 0 :(得分:0)

尝试更新Microsoft.AspNet.Web.Optimization和相关的NuGet包:Microsoft.Web.Infrastructure,WebGrease,Antlr。不仅仅是检查&#34; nuget.org&#34;选项卡,还有&#34;全部&#34;。

相关问题