Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 仅MVC4 BundleConfig中的缩小脚本_Asp.net Mvc_Razor_Asp.net Mvc 4_Bundle_Asp.net Optimization - Fatal编程技术网

Asp.net mvc 仅MVC4 BundleConfig中的缩小脚本

Asp.net mvc 仅MVC4 BundleConfig中的缩小脚本,asp.net-mvc,razor,asp.net-mvc-4,bundle,asp.net-optimization,Asp.net Mvc,Razor,Asp.net Mvc 4,Bundle,Asp.net Optimization,我正在BundleConfig中添加以下脚本包: bundles.Add(new ScriptBundle("~/bundles/javascript").Include( "~/Scripts/jquery-1.*", "~/Scripts/load-image.min.js", "~/Scripts/bootstrap.*", "~/Scripts/bootstrap-image-gallery.*",

我正在BundleConfig中添加以下脚本包:

    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"));
这在my_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.*”我发现它包含在两种配置中,但这样做有什么意义


我想我遗漏了什么。我没有未缩小的版本,坦率地说,我不在乎它。它由我的引导图像库插件使用,其他什么都没有。有什么想法吗?

有一个
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.1.0-alpha1版本中得到改进(修复)。我们将所有旧的默认忽略列表条目移动到一个新的DirectoryFilter忽略列表中,该列表仅在包含类似于*.js的搜索模式时使用,这是此功能的最初目的。因此,当您显式地包含单个文件时,这不再是一个问题


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

谢谢@webdeveloper——快速浏览一下这一点就可以知道,要实现我想要的,我需要完全清除这个忽略列表,并用显式文件名重新填充。显然,我希望保留在开发中忽略缩小文件的能力,但有一个明显的例外。您知道这是否可行吗?@tomtroughton此列表通过掩码工作,无需键入显式文件名。此外,您还可以使用
#ifdef DEBUG
编写一些仅用于调试的逻辑在调试模式下启用缩小功能,这样他就不会忽略.min文件,但我想这并不完全是您想要做的,因为整个捆绑包都会缩小并且很难调试。
的+1则决定最好是完全忽略它。太棒了。
这种情况经常发生:)你能详细说明一下吗?我们怎样才能克服这一点?您指的是什么软件版本(1.1.0-alpha1)?你能举个例子,说明当缺少非缩微文件时,如何显式地包含一个文件(例如
test.min.js
)。