如果没有将EnableOptimization设置为true,则JS包不会呈现

我不知道我做错了什么但它可能是MVC4中的一个错误。 我想知道如何解决这个问题?

工作方案

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

@Scripts.Render("~/js")
转换为(例如IT WORKS!)

工作场景不是那么多

 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 } } 

@Scripts.Render("~/js")
转换为(例如,它不工作!)
(nothing, couple of empty break lines)

如果我的理解是正确的,您应该使用“非最小”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结尾(就像我一样)并且未启用优化(例如,在web.config中将debug设置为true并且尚未设置BundleTable.EnableOptimizations为了真实),这个文件将被忽略(即你的html中不会为它生成脚本包含)。“

在这里,您可以阅读完整的原始回复: http : //blog.degree.no/2013/06/javascript-file-missing-resource-bundle-asp-net-web-optimization-framework/