我理解并完全理解新的bundle通配符{version}正则表达式,因为即使在更新后它也会继续拾取你的脚本和样式库.问题是我无法让它有效地工作.
我之前使用以下表示法来获取我的jQuery脚本:
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-1.*"));
Run Code Online (Sandbox Code Playgroud)
它会拾取与星号通配符匹配的所有文件.
但是,当我尝试以下内容时:
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js"));
Run Code Online (Sandbox Code Playgroud)
我注意到jQuery文件没有写到_Layout.cshtml页面.
注意 - 我确实在两个示例中使用以下HTML代码:
@Scripts.Render("~/bundles/jquery")
Run Code Online (Sandbox Code Playgroud)
当我使用上面的第一个例子("*")表示法时,会将以下内容写入页面:
<script src="/Scripts/jquery-1.7.2.js" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)
但是,当我使用"{version}"表示法时,只有一个空的空间,应该写入库.这适用于jquery文件以及相关的CSS样式表.
无论我是在编译DEBUG还是RELEASE模式都没关系.结果是一样的.显然在发布模式下,我会在使用"*"表示法时获得优化版本:
<script src="/bundles/jquery?v=VUv2YOeuOgHad-FHZ-vGMDu9wN1j9VZGifI1SBUUSMs1" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)
因此,作为所有开发人员的完美主义者,我非常希望看到{version}符号对我有用,因为我确实了解新版本并希望对我的部署进行此控制.
非常感谢任何洞察我可能做错的事情.
提前谢谢,丹