我在BundleConfig中添加以下ScriptBundle:
bundles.Add(new ScriptBundle("~/bundles/javascript").Include(
"~/Scripts/jquery-1.*",
"~/Scripts/load-image.min.js",
"~/Scripts/bootstrap.*",
"~/Scripts/bootstrap-image-gallery.*",
"~/Scripts/my.global.js"));
这在我的_Layout.cshtml末尾被引用为:
@Scripts.Render("~/bundles/javascript")
调试时我注意到这个脚本渲染的输出是:
<script src="/Scripts/jquery-1.8.2.js"></script>
<script src="/Scripts/bootstrap.js"></script>
<script src="/Scripts/bootstrap-image-gallery.js"></script>
<script src="/Scripts/my.global.js"></script>
请注意,缺少load-image.min.js脚本?我想要的是使用相同的缩小脚本,无论我是否正在调试。在发布条件下,脚本包含在捆绑的JS文件中。
我认为它正在看'min',寻找一个未缩小的版本,没有找到一个,然后决定什么是最好的完全忽略它。辉煌。如果我复制了load-image.min.js,请将其命名为load-image.js,然后在BundleConfig中将其作为“load-image。*”引用。我发现它包含在两个配置中但是有什么意义去做?
我认为我在这里遗漏了一些东西。我没有非缩小版本,坦率地说我并不关心它。它被我的Bootstrap图像库插件使用,没有别的。那里有什么想法吗?
答案 0 :(得分:5)
有ignoreList
,您可以根据需要清除,如下所示:
public static void AddDefaultIgnorePatterns(IgnoreList ignoreList)
{
if (ignoreList != null)
{
ignoreList.Ignore("*.intellisense.js");
ignoreList.Ignore("*-vsdoc.js");
ignoreList.Ignore("*.debug.js", OptimizationMode.WhenEnabled);
ignoreList.Ignore("*.min.js", OptimizationMode.WhenDisabled);
ignoreList.Ignore("*.min.css", OptimizationMode.WhenDisabled);
return;
}
else
{
throw new ArgumentNullException("ignoreList");
}
}
答案 1 :(得分:4)
此行为已在1.1.0-alpha1版本中得到改进(修复)。我们将所有旧的默认忽略列表条目移动到新的DirectoryFilter忽略列表中,该列表仅在包含* .js等搜索模式时使用,这些搜索模式是此功能的原始意图。因此,当您明确包含单个文件时,这应该不再是一个问题。
注意:如果您尝试包含类似jquery- {version} .min.js的内容,那么这可能仍然是一个问题。