ASP.net 打包器会自动缩小文件吗?
Does the ASP.net bundler automatically minify files?
我正在使用 ASP.net MVC 4。 如问题所述,如果我放置一堆 JS 文件(或 CSS,为此matter) 成一个包,它会 自动 缩小吗?例如,我的包应该是:
bundles.Add(new ScriptBundle("~/bundles/exampleBundle").Include(
"~/Scripts/jquery-masked.js"
"~/Scripts/jquery.idletimer.js"
));
或者它是否应该包含最初的缩小文件:
bundles.Add(new ScriptBundle("~/bundles/exampleBundle").Include(
"~/Scripts/jquery-masked.min.js"
"~/Scripts/jquery.idletimer.min.js"
));
??
编辑: 现在我想知道捆绑 .min 文件是否会增加任何优化。它会提高性能,包括捆绑包中的 .min 文件而不是基本文件吗? (也许 "minifier function" 需要一些时间?)
您不必包含缩小文件,这是由捆绑引擎自动完成的。事实上,我记得包括缩小文件导致的问题(也许这是在最新的 mvc 版本上修复的)
您可能认为这不起作用,因为优化(捆绑和缩小)仅在 web.config 上的 debug=false
时执行。
<system.web>
<compilation debug="false" />
</system.web>
即使在 debug = true
使用 BundleTable.EnableOptimizations
时,也有一种强制优化的方法。这里有一个例子
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js"));
BundleTable.EnableOptimizations = true;
}
Asp.Net 捆绑器确实将同一个捆绑包中的所有脚本捆绑到一个文件中,并按照它们在捆绑包中定义的顺序列出。然后将这个单个文件缩小并交付给客户端。
如果您在脚本目录中同时包含脚本的正常版本和缩小版本,捆绑器将在调试会话期间自动部署完整脚本,并在生产期间自动部署缩小版本。您应该避免在捆绑配置中引用脚本的缩小版本,除非您希望将缩小版本部署到调试会话中。
这是两个不同的术语,称为捆绑和缩小。
Minification :您是通过重命名变量来压缩内容的 JS 文件的缩小版本。
捆绑 :完全是另一回事。为了减少网络往返,最好将所有内容合并到一个文件中,并在一个请求中将其下载到客户端。
因此您可以捆绑 JS 的缩小版本以获得此好处。
我正在使用 ASP.net MVC 4。 如问题所述,如果我放置一堆 JS 文件(或 CSS,为此matter) 成一个包,它会 自动 缩小吗?例如,我的包应该是:
bundles.Add(new ScriptBundle("~/bundles/exampleBundle").Include(
"~/Scripts/jquery-masked.js"
"~/Scripts/jquery.idletimer.js"
));
或者它是否应该包含最初的缩小文件:
bundles.Add(new ScriptBundle("~/bundles/exampleBundle").Include(
"~/Scripts/jquery-masked.min.js"
"~/Scripts/jquery.idletimer.min.js"
));
??
编辑: 现在我想知道捆绑 .min 文件是否会增加任何优化。它会提高性能,包括捆绑包中的 .min 文件而不是基本文件吗? (也许 "minifier function" 需要一些时间?)
您不必包含缩小文件,这是由捆绑引擎自动完成的。事实上,我记得包括缩小文件导致的问题(也许这是在最新的 mvc 版本上修复的)
您可能认为这不起作用,因为优化(捆绑和缩小)仅在 web.config 上的 debug=false
时执行。
<system.web>
<compilation debug="false" />
</system.web>
即使在 debug = true
使用 BundleTable.EnableOptimizations
时,也有一种强制优化的方法。这里有一个例子
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js"));
BundleTable.EnableOptimizations = true;
}
Asp.Net 捆绑器确实将同一个捆绑包中的所有脚本捆绑到一个文件中,并按照它们在捆绑包中定义的顺序列出。然后将这个单个文件缩小并交付给客户端。
如果您在脚本目录中同时包含脚本的正常版本和缩小版本,捆绑器将在调试会话期间自动部署完整脚本,并在生产期间自动部署缩小版本。您应该避免在捆绑配置中引用脚本的缩小版本,除非您希望将缩小版本部署到调试会话中。
这是两个不同的术语,称为捆绑和缩小。
Minification :您是通过重命名变量来压缩内容的 JS 文件的缩小版本。
捆绑 :完全是另一回事。为了减少网络往返,最好将所有内容合并到一个文件中,并在一个请求中将其下载到客户端。
因此您可以捆绑 JS 的缩小版本以获得此好处。