Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.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
C# 如果未将EnableOptimization设置为true,则JS捆绑包不会呈现_C#_Asp.net_Asp.net Mvc_Asp.net Mvc 4 - Fatal编程技术网

C# 如果未将EnableOptimization设置为true,则JS捆绑包不会呈现

C# 如果未将EnableOptimization设置为true,则JS捆绑包不会呈现,c#,asp.net,asp.net-mvc,asp.net-mvc-4,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 4,我不知道我是否做错了什么,但这可能是MVC4中的一个bug。我想知道我怎样才能解决这个问题 工作场景 @Scripts.Render(“~/js”) 转换为(例如,它可以工作!) 没有那么多工作场景 @Scripts.Render(“~/js”) 转换为(例如,它不工作!) (没有,两个空的分隔行)如果我的理解是正确的,您应该使用“non-min”JavaScript文件定义包。当您启用优化时,它会为您将非min文件替换为min文件: public class BundleConfig

我不知道我是否做错了什么,但这可能是MVC4中的一个bug。我想知道我怎样才能解决这个问题

工作场景
@Scripts.Render(“~/js”)

转换为(例如,它可以工作!)

没有那么多工作场景
@Scripts.Render(“~/js”)

转换为(例如,它不工作!)

(没有,两个空的分隔行)

如果我的理解是正确的,您应该使用“non-min”JavaScript文件定义包。当您启用优化时,它会为您将非min文件替换为min文件:

public class BundleConfig
{
    public static void RegisterBundles(BundleCollection bundles)
    {
        ScriptBundle scriptBundle = new ScriptBundle("~/js");
        string[] scriptArray =
        {
            "~/content/plugins/jquery/jquery-1.8.2.js",
            "~/content/plugins/jquery/jquery-ui-1.9.0.js",
            "~/content/plugins/jquery/jquery.validate.js",
            "~/content/plugins/jquery/jquery.validate.unobtrusive.js",
            "~/content/plugins/bootstrap/js/bootstrap.js",
        };
        scriptBundle.Include(scriptArray);
        scriptBundle.IncludeDirectory("~/content/js", "*.js");
        bundles.Add(scriptBundle);
    }
}

调试时,优化设置为false,但在发布模式下默认为true。

是的,它不能正确处理*.min.js等文件

“如果您向包中添加一个名称以.min.js结尾的文件 (就像我做的那样)并且没有启用优化(例如,debug设置为 在web.config和BundleTable.EnableOptimizations中为true,但尚未进行优化 设置为true),将忽略此文件(即不包含任何脚本) 在您的html中为其生成

在这里,您可以阅读完整的原始响应:

是的,但它们无论如何都不会显示,您认为它不会显示它们,只是因为它们的文件名中有“min”一词吗?那太无聊了。你试过了吗?如果我将
.min
添加到文件名并关闭优化,则不会得到任何脚本。是的,您是正确的。当我的文件名中没有
min
时,它可以工作。谢谢:)您可以将.min文件留在那里,但一定要添加
bundles.IgnoreList.Clear()否则它们将被忽略。@JonathanStrate,我这样做了-
bundles.Add(新样式bundle(“~/content/admin”)。IncludeDirectory(“~/content/css”,“*.min.css”)
BundleTable.EnableOptimizations=false;bundles.IgnoreList.Clear()但仍未加载CSS。
public class BundleConfig
{
    public static void RegisterBundles(BundleCollection bundles)
    {
        ScriptBundle scriptBundle = new ScriptBundle("~/js");
        string[] scriptArray =
        {
            "~/content/plugins/jquery/jquery-1.8.2.min.js",
            "~/content/plugins/jquery/jquery-ui-1.9.0.min.js",
            "~/content/plugins/jquery/jquery.validate.min.js",
            "~/content/plugins/jquery/jquery.validate.unobtrusive.min.js",
            "~/content/plugins/bootstrap/js/bootstrap.min.js",
        };
        scriptBundle.Include(scriptArray);
        scriptBundle.IncludeDirectory("~/content/js", "*.js");
        bundles.Add(scriptBundle);

        // BundleTable.EnableOptimizations = true; // I could set it to 'false' for same result, it's false by default
    }
}
public class BundleConfig
{
    public static void RegisterBundles(BundleCollection bundles)
    {
        ScriptBundle scriptBundle = new ScriptBundle("~/js");
        string[] scriptArray =
        {
            "~/content/plugins/jquery/jquery-1.8.2.js",
            "~/content/plugins/jquery/jquery-ui-1.9.0.js",
            "~/content/plugins/jquery/jquery.validate.js",
            "~/content/plugins/jquery/jquery.validate.unobtrusive.js",
            "~/content/plugins/bootstrap/js/bootstrap.js",
        };
        scriptBundle.Include(scriptArray);
        scriptBundle.IncludeDirectory("~/content/js", "*.js");
        bundles.Add(scriptBundle);
    }
}