Asp.net mvc 在MVC4中绑定的正确方法

Asp.net mvc 在MVC4中绑定的正确方法,asp.net-mvc,asp.net-mvc-4,Asp.net Mvc,Asp.net Mvc 4,我对捆绑脚本和样式文件的正确方法有点困惑。目前,我的BundleConfig.cs如下所示: bundles.Add(new ScriptBundle("~/bundles/jquery").Include( "~/Scripts/jquery-{version}.js")); bundles.Add(new ScriptBundle("~/bundles/jqueryui").Include( "~/Scripts/jquery-ui-{ver

我对捆绑脚本和样式文件的正确方法有点困惑。目前,我的BundleConfig.cs如下所示:

bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
            "~/Scripts/jquery-{version}.js"));

bundles.Add(new ScriptBundle("~/bundles/jqueryui").Include(
            "~/Scripts/jquery-ui-{version}.js"));

bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
            "~/Scripts/jquery.unobtrusive*",
            "~/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 StyleBundle("~/Content/css").Include("~/Content/site.css"));

bundles.Add(new ScriptBundle("~/bundles/knockout").Include(
            "~/Scripts/knockout-{version}.js",
            "~/Scripts/knockout-{version}.debug.js",
            "~/Scripts/knockout-sortable.js"));

bundles.Add(new StyleBundle("~/Content/themes/base/css").Include(
            "~/Content/themes/base/jquery.ui.core.css",
            "~/Content/themes/base/jquery.ui.resizable.css",
            "~/Content/themes/base/jquery.ui.selectable.css",
            "~/Content/themes/base/jquery.ui.accordion.css",
            "~/Content/themes/base/jquery.ui.autocomplete.css",
            "~/Content/themes/base/jquery.ui.button.css",
            "~/Content/themes/base/jquery.ui.dialog.css",
            "~/Content/themes/base/jquery.ui.slider.css",
            "~/Content/themes/base/jquery.ui.tabs.css",
            "~/Content/themes/base/jquery.ui.datepicker.css",
            "~/Content/themes/base/jquery.ui.progressbar.css",
            "~/Content/themes/base/jquery.ui.theme.css"));

bundles.Add(new StyleBundle("~/bundles/BootStrapcss").Include(
            "~/BootStrap/css/bootstrap.css",
            "~/BootStrap/css/bootstrap-fileupload.css"));

bundles.Add(new StyleBundle("~/bundles/BootStrap").Include(
            "~/BootStrap/tpg-main.css",
            "~/BootStrap/tpg-internal.css"));

bundles.Add(new ScriptBundle("~/bundles/BootStrapjs").Include(
            "~/BootStrap/js/bootstrap-fileupload.js",
            "~/BootStrap/js/bootstrap.js"));

BundleTable.EnableOptimizations = true;

是否应该保留现有的脚本文件,或者将所有脚本文件捆绑到一个
ScriptBundle
,将所有样式捆绑到一个
StyleBundle
?我想达到最好的表现

如果你总是使用所有的文件,那就把它们分成两个包;一个用于javascript,一个用于样式。更少的bundle意味着对服务器获取资源的请求更少,这可能会在第一次命中时产生稍微更好的性能;随后,浏览器将缓存这些文件


如果您不总是使用所有文件,那么将它们分成更多的包就更有意义了。

为了澄清他的观点,您可能只需要在一个或两个页面上使用Knockout,而不需要在整个站点上使用Knockout。因此,您不应该将其与其他内容捆绑在一起,因为它将加载到不使用或不需要的页面上。@Moozhe是的,谢谢您,为了完整性,我应该对此进行更多的扩展。如何将jquery、validate和Modernizer捆绑在一起?@ganders来自捆绑缓存部分,“如果捆绑包中的任何文件发生更改,ASP.NET优化框架将生成一个新的令牌,保证浏览器对捆绑包的请求将获得最新的捆绑包。”@tastro只是将它们自己放入捆绑包中?
bundles.Add(new ScriptBundle(“~/bundles/mybundle”)。Include(“~/Scripts/jquery-{version}.js”~/Scripts/jquery.validate*”,“~/Scripts/modernizer-*”);