2013-09-25 32 views
10

Tôi hơi bối rối về cách chính xác để tập lệnh theo kịch bản và tệp kiểu. Hiện nay, BundleConfig.cs của tôi trông như thế này:Cách chính xác để gói trong MVC4

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; 

có nên ở lại với những gì tôi có, hoặc bó tất cả các file kịch bản của tôi vào một ScriptBundle, và tất cả các phong cách của tôi vào một StyleBundle? Tôi muốn đạt được hiệu suất tốt nhất có thể.

Trả lời

14

Nếu bạn luôn sử dụng tất cả các tệp hơn là tiếp tục và dán chúng vào hai nhóm; một cho javascript và một cho các kiểu. Ít gói hơn có nghĩa là ít yêu cầu đến máy chủ hơn để tìm nạp tài nguyên, điều này có thể dẫn đến hiệu suất tốt hơn một chút trong lần truy cập đầu tiên; sau đó các tệp sẽ được trình duyệt lưu vào bộ nhớ cache.

Nếu bạn không phải lúc nào cũng sử dụng tất cả các tệp, điều này có ý nghĩa hơn khi chia chúng thành nhiều nhóm hơn.

+6

Để làm rõ điểm của mình, bạn chỉ có thể cần sử dụng Knockout trên một hoặc hai trang chẳng hạn và không phải toàn bộ trang web của bạn. Do đó, bạn không nên gói nó cùng với mọi thứ khác vì nó sẽ được tải trên các trang mà nó không được sử dụng hoặc cần thiết. –

+0

@Moozhe Có cảm ơn bạn, tôi nên mở rộng thêm một chút để hoàn thành. – asymptoticFault

+0

Làm thế nào để gói jquery, xác nhận và modernizr thành một? –

Các vấn đề liên quan