这里是默认的MVC5 App BundleConfig:
public class BundleConfig
{
// For more information on bundling, visit http://go.microsoft.com/fwlink/?LinkId=301862
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js"));
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
"~/Scripts/jquery.validate*"));
// Use the development version of Modernizr to develop with and learn from. Then, when you're
// ready for production, use the build tool at http://modernizr.com to pick only the tests you need.
bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
"~/Scripts/modernizr-*"));
bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include(
"~/Scripts/bootstrap.js",
"~/Scripts/respond.js"));
}
}
仅拥有一个捆绑包会不会简单得多,您需要包含所需的所有脚本?像这样:
public class BundleConfig
{
// For more information on bundling, visit http://go.microsoft.com/fwlink/?LinkId=301862
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/bundles/scripts").Include(
"~/Scripts/jquery-{version}.js",
"~/Scripts/jquery.validate*",
"~/Scripts/modernizr-*",
"~/Scripts/bootstrap.js",
"~/Scripts/respond.js"));
}
}
或者,甚至更简单,像这样(在Script文件夹中只放置你需要的JS文件):
public class BundleConfig
{
// For more information on bundling, visit http://go.microsoft.com/fwlink/?LinkId=301862
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/bundles/scripts").Include("~/Scripts/*"));
}
}
答案 0 :(得分:5)
只有一个捆绑包,你需要包含所需的所有脚本,这不是更简单吗?
这可能会略微简化开发过程,因为您不需要查找要包含的相应bundle。但是让我们从另一个角度看待这个。
在asp.net forum上,以下是:
捆绑和缩小是ASP.NET 4.5中可用于改进请求加载时间的两种技术。捆绑和缩小可以减少对服务器的请求数量并减少所请求资产(例如CSS和JavaScript)的大小,从而缩短加载时间。
所以我们捆绑以使事情更快地运作。如果您创建的页面包含不需要bootstrap.js
的简单表单,该怎么办?如果你有兴趣加速一切,你为什么要加载呢?
最佳性能选项是将您可能需要的所有可能的js文件组合放在单独的包中。每个页面只有一个请求来获取它需要的所有js。然而,这种方式很难维持。
因此,您需要决定自己感兴趣的方面。