6

我理解并完全欣赏新的捆绑通配符 {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} 符号对我有用,因为我会及时了解新版本并希望对我的部署进行这种控制。

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

在此先感谢,丹

4

1 回答 1

0

尝试更新 Microsoft.AspNet.Web.Optimization 和相关的 NuGet 包:Microsoft.Web.Infrastructure、WebGrease、Antlr。不仅要检查“nuget.org”选项卡,还要检查“全部”。

于 2014-12-20T16:52:25.590 回答