ASP.net捆绑包是否会自动缩小文件?

Alb*_*afe 23 c# asp.net-mvc bundle bundling-and-minification

我正在使用ASP.net MVC 4.就像问题所述,如果我将一堆JS文件(或CSS,就此而言)放入一个包中,它会自动缩小吗?例如,我的包应该是:

        bundles.Add(new ScriptBundle("~/bundles/exampleBundle").Include(
            "~/Scripts/jquery-masked.js"
            "~/Scripts/jquery.idletimer.js"
            ));
Run Code Online (Sandbox Code Playgroud)

或者它应该最初包括缩小的文件:

        bundles.Add(new ScriptBundle("~/bundles/exampleBundle").Include(
            "~/Scripts/jquery-masked.min.js"
            "~/Scripts/jquery.idletimer.min.js"
            ));
Run Code Online (Sandbox Code Playgroud)

??

编辑:现在我想知道捆绑.min文件是否会添加任何优化.它是否会提高性能,包括捆绑包中的.min文件而不是基本文件?(也许"minifier函数"需要一些时间?)

Cla*_*edi 25

您不必包含缩小文件,这些文件由捆绑引擎自动完成.事实上,我记得包括缩小文件引起的问题(也许这是在最新的mvc版本上修复的)

您可能认为这不起作用,因为优化(捆绑和缩小)仅debug=false在web.config上执行.

<system.web>
     <compilation debug="false" />
</system.web>
Run Code Online (Sandbox Code Playgroud)

有一种方法可以在debug = true使用时强制优化BundleTable.EnableOptimizations.这里有一个例子

public static void RegisterBundles(BundleCollection bundles)
{
    bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                 "~/Scripts/jquery-{version}.js"));

    BundleTable.EnableOptimizations = true;
}
Run Code Online (Sandbox Code Playgroud)


Cla*_*ies 24

Asp.Net捆绑包将同一捆绑包中的所有脚本捆绑到一个文件中,按捆绑包中定义的顺序列出.然后将该单个文件缩小并传送到客户端.

如果在脚本目录中包含脚本的正常版本和缩小版本,则捆绑程序将在调试会话期间自动部署完整脚本,并在生产期间自动部署缩小版本.除非您希望将缩小版本部署到调试会话中,否则应避免在捆绑配置中引用脚本的缩小版本.

  • 如果存在捆绑包中所有脚本的缩小版本,它们仍将捆绑到单个捆绑包文件中,但该文件不会进一步缩小.否则,缩小版本将在文件中与非缩小文件内联,并且文件*将*进行缩小. (4认同)
  • 所以只是为了澄清一下,如果目录中存在缩小的文件,它会自动部署(在生产会话期间)而不是动态地进行任何缩小转换? (2认同)