【问题标题】:no request to minify javascripts没有缩小 javascripts 的请求
【发布时间】:2013-02-18 20:25:19
【问题描述】:

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"

我打开 firebug 并看到在“net -> js”选项卡部分,只调用不缩小 js。客户端未请求所有缩小 js 文件。

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

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

问题是在我从 nuget 安装“Microsoft.AspNet.Mvc.FixedDisplayModes.1.0.0”包后开始的......当我在发布模式下运行网站时一切正常。 我没有不缩小 js 文件,我想继续在调试模式下工作。我该如何解决?为什么客户端没有请求缩小 js?

【问题讨论】:

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


    【解决方案1】:

    在调试模式下使用捆绑和缩小时,捆绑/缩小被禁用。

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

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

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

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

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

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

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

    【讨论】:

    • 这将导致所有文件被缩小......我也希望能够在 firebug 中看到其他文件。
    • 但我有一些文件只有“min”版本。我希望它们也以调试模式提供服务。在我从 nuget 下载显示模式包以使我的网站在移动设备上运行之前,它一直有效。
    • @HaddarMacdasi 我更新了我的答案。希望这可以澄清事情。
    猜你喜欢
    • 1970-01-01
    • 2012-10-14
    • 1970-01-01
    • 2013-06-07
    • 2014-12-19
    • 1970-01-01
    • 2019-11-14
    • 2015-02-28
    相关资源
    最近更新 更多