没有要求缩小javascripts

时间:2013-02-18 20:25:20

标签: asp.net asp.net-mvc-4 bundling-and-minification

MVC4 C#网站,在调试模式下运行,代码在" BundleConfig"文件有:

public static void RegisterBundles(BundleCollection bundles)
{
    bundles.Add(new ScriptBundle("~/bundles/scripts").Include(
                "~/Scripts/jquery-1.8.2.min.js", 
                "~/Scripts/jquery.simplemodal.js", 
                "~/Scripts/jquery-ui-1.9.2.custom.min.js", 
                "~/Scripts/jquery.validate.js", 
                "~/Scripts/jquery.validate.unobtrusive.min.js", 
                "~/Scripts/site.js", 
                "~/Scripts/jquery.watermark.js", 
                "~/Scripts/jquery.signalR-0.5.3.min.js" ,
                "~/Scripts/jquery.dataTables.js"

在web.config中,debug="true"

我打开萤火虫并在" net中看到 - > JS"选项卡部分,仅调用不缩小js。不会从客户端请求所有minify js文件。

在我的布局中,我的代码是:

@Scripts.Render("~/bundles/scripts")

我安装了" Microsoft.AspNet.Mvc.FixedDisplayModes.1.0.0"来自nuget的包...当我在发布模式下运行网站时一切正常。 我没有minify js文件,我想继续在调试模式下工作。我该如何解决?为什么没有要求从客户端缩小js?

1 个答案:

答案 0 :(得分:1)

在调试模式下使用Bundling and Minification时,禁用捆绑/缩小。

您可以通过将BundleTable.EnableOptimizations = true;添加到RegisterBundles来覆盖此并强制捆绑和缩小。

public static void RegisterBundles(BundleCollection bundles)
{
    //your bundle code
    BundleTable.EnableOptimizations = true;
}

更新:看到你的评论似乎我误解了你的问题。

当您处于调试模式且BundleTable.EnableOptimizations = false时,.min版本的文件使用 NOT 。相反,将使用文件的完整调试版本。所以你的脚本文件夹应该有两个版本的文件:比如

jquery-1.9.1.min.js 
jquery-1.9.1.js

在调试模式下,将使用jquery-1.9.1.js。在发布模式下,将使用jquery-1.9.1.min.js

如果您只有一个版本的文件,那么只需从文件名中删除“.min”。