2013-02-19 23 views
17

Gần đây, bản sao cục bộ của dự án của tôi hoàn toàn mất hầu hết kiểu dáng của nó. Đã cho tôi một thời gian để tìm ra nó, như hầu hết các kiểu dáng đã được thực hiện trong một tập tin và phần còn lại là những thứ nhỏ như Kendo và jQuery UI.Gói phong cách ASP.Net MVC Không bao gồm hầu hết các tệp

Thứ khác, thứ nhỏ không được thêm vào trang. Tôi nghĩ rằng các phong cách đã được sửa đổi bởi một nhà phát triển khác (đã không chạm vào dự án này một thời gian), người chỉ kiểm tra các công cụ Web API và không phải là giao diện người dùng nên anh ta có thể đã phá hỏng nó và không bao giờ biết, nhưng tôi đã theo dõi vấn đề: chỉ có tệp site.css được đưa vào gói và không có tệp nào khác. Tôi thậm chí đã cố gắng sắp xếp lại thứ tự các tệp CSS được bao gồm trong gói và nó sẽ CHỈ bao gồm site.css.

Tôi đã xây dựng lại dự án, xóa bộ nhớ cache, v.v., do đó, chắc chắn là đã thấy thay đổi. Tôi nhớ đã cập nhật một số gói NuGet hoặc gói VS hoặc một thứ gì đó gần đây - thậm chí có thể là gói MVC?

Câu hỏi của tôi là: Đã có điều gì đó thay đổi khiến điều này xảy ra? Điều gì gây ra điều này?

EDIT: Mã từ BundleConfig.cs:

public static void RegisterBundles(BundleCollection bundles) 
{ 
    bundles.Add(new StyleBundle("~/Content/css").Include(
      "~/Content/site.css", 
      "~/Content/themes/kendo/kendo.common.min.css", 
      "~/Content/themes/kendo/kendo.default.min.css", 
      "~/Content/themes/base/minified/jquery.ui.core.min.css", 
      "~/Content/themes/base/minified/jquery.ui.resizable.min.css", 
      "~/Content/themes/base/minified/jquery.ui.selectable.min.css", 
      "~/Content/themes/base/minified/jquery.ui.accordion.min.css", 
      "~/Content/themes/base/minified/jquery.ui.autocomplete.min.css", 
      "~/Content/themes/base/minified/jquery.ui.button.min.css", 
      "~/Content/themes/base/minified/jquery.ui.dialog.min.css", 
      "~/Content/themes/base/minified/jquery.ui.slider.min.css", 
      "~/Content/themes/base/minified/jquery.ui.tabs.min.css", 
      "~/Content/themes/base/minified/jquery.ui.datepicker.min.css", 
      "~/Content/themes/base/minified/jquery.ui.progressbar.min.css", 
      "~/Content/themes/base/minified/jquery.ui.theme.min.css")); 
} 

Mã từ _Layout.cshtml:

@Styles.Render("~/Content/themes/base/css", "~/Content/css") 
+0

Vui lòng bạn có thể đăng mã bundling của mình. – ngm

+0

Đã cập nhật bằng mã, @ngm. – vbullinger

+0

Bây giờ điều này không thú vị: hơn 1.000 lượt xem và số điểm bằng 0 cho câu hỏi ... – vbullinger

Trả lời

54

Theo mặc định, tập tin có tên kết thúc bằng ".min.css" sẽ chỉ được bao gồm trong số phát hành bản dựng.

Các khuyến cáo bó cấu hình để chỉ bao gồm .css phi minified và .js file, sau đó phiên bản .min sẽ tự động được lựa chọn (nếu nó tồn tại) trong phiên bản xây dựng, ví dụ: <compilation debug="false"> trong bạn Web.config.

Bạn có thể kiểm soát hành vi này bằng cách xóa và sau đó thêm quy tắc bỏ qua vào BundleCollection.IgnoreList. Một ví dụ BundleConfig có thể trông như thế này:

public static class BundleConfig 
{ 
    public static void RegisterBundles(BundleCollection bundles) 
    { 
     ConfigureIgnoreList(bundles.IgnoreList); 

     // Setup your bundles... 
    } 

    public static void ConfigureIgnoreList(IgnoreList ignoreList) 
    { 
     if (ignoreList == null) throw new ArgumentNullException("ignoreList"); 

     ignoreList.Clear(); // Clear the list, then add the new patterns. 

     ignoreList.Ignore("*.intellisense.js"); 
     ignoreList.Ignore("*-vsdoc.js"); 
     ignoreList.Ignore("*.debug.js", OptimizationMode.WhenEnabled); 
     // ignoreList.Ignore("*.min.js", OptimizationMode.WhenDisabled); 
     ignoreList.Ignore("*.min.css", OptimizationMode.WhenDisabled); 
    } 
} 

Bạn cũng có thể kích hoạt một cách rõ ràng/vô hiệu hóa tối ưu hóa bằng cách thiết lập BundleTable.EnableOptimizations.

+4

Âm thanh hay. Chúng tôi đã làm ở đây. – vbullinger

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