9

我在 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 文件中。

我假设它看到了“最小”,寻找一个未缩小的版本,没有找到一个,然后决定什么是最好的就是完全忽略它。杰出的。如果我复制 load-image.min.js,将其命名为 load-image.js,然后在 BundleConfig 中将其引用为“load-image.*”,我发现它包含在两种配置中,但必须这样做有什么意义去做?

我想我在这里遗漏了一些东西。我没有未缩小的版本,坦率地说我不在乎。它由我的 Bootstrap 图片库插件使用,仅此而已。有什么想法吗?

4

2 回答 2

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");
    }
}

更多详细信息:ASP.NET 捆绑和缩小的高级选项

于 2012-10-26T13:54:29.047 回答
5

此行为已在 1.1.0-alpha1 版本中得到改进(修复)。我们将所有旧的默认忽略列表条目移动到一个新的 DirectoryFilter 忽略列表中,该列表仅在包含 *.js 之类的搜索模式时使用,这是此功能的原始意图。因此,当您明确包含单个文件时,这应该不再是问题。

注意:这可能仍然是一个问题的一个地方是,如果您尝试包含类似 jquery-{version}.min.js 的内容。

于 2012-10-29T21:22:16.500 回答