Bật tính năng đóng gói và rút gọn trong chế độ gỡ lỗi trong ASP.NET MVC 4


112

Tôi không thể tin rằng tôi không thể tìm thấy các câu hỏi khác về điều này, nhưng: làm cách nào để kích hoạt tính năng đóng gói trong chế độ gỡ lỗi? Tôi biết cách nó được kích hoạt cho chế độ phát hành, nhưng ở chế độ gỡ lỗi, tôi không thể tìm cách để bật tính năng này.

Điều này thậm chí có thể hoặc tôi đang thiếu một cái gì đó?

Câu trả lời:


214

Bạn có thể kích hoạt điều này bằng cách thêm

BundleTable.EnableOptimizations = true;

trong phương thức RegisterBundles của bạn (lớp BundleConfig trong thư mục App_Start).

kiểm tra http://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minification để biết thêm thông tin

Bạn cũng có thể thay đổi web.config của mình:

<system.web>
    <compilation debug="false" />
</system.web>

Nhưng điều này sẽ vô hiệu hóa hoàn toàn chế độ gỡ lỗi, vì vậy tôi khuyên bạn nên chọn tùy chọn đầu tiên.

Cuối cùng, để tận dụng tối đa cả hai thế giới, hãy sử dụng chỉ thị trình biên dịch #if như sau:

#if DEBUG
            BundleTable.EnableOptimizations = false;
#else
            BundleTable.EnableOptimizations = true;
#endif

4
Tôi sẽ thực hiện thêm bước này và thêm phần cấu hình tùy chỉnh vào web.config của bạn (hoặc tối thiểu là mục nhập AppSetting.) Bằng cách đó, bạn có thể bật / tắt tối ưu hóa một cách có chọn lọc mà không cần phải xây dựng lại.
Joe the Coder

1
hoặc sử dụng #if DEBUG& #if !DEBUGcâu lệnh biên dịch trước
Liam

Cũng nhớ rằng ghi đè này debug="true"cấu hình, vì vậy optimisations luôn kích hoạt hay vô hiệu hóa nếu bạn hardcode giá trị này
Liam

1
Hoặc sử dụng MVC "verbose" nhưif (HttpContext.Current.IsDebuggingEnabled) { BundleTable.EnableOptimizations = false; } else { BundleTable.EnableOptimizations = true; }
Tiramonium 14/1217

nếu bạn thích tùy chọn cấu hình web, bạn cũng có thể thiết lập nhiều cấu hình web cho mỗi cấu hình để gỡ lỗi cấu hình web là đúng và bản phát hành sẽ là sai docs.microsoft.com/en-us/aspnet/web-forms/overview/deployment/…
Matthew Ellison

11

thêm BundleTable.EnableOptimizations = true;vào Application_Start()phương thức của Global.asaxtệp


-2

Trong Global.asax thêm BundleConfig.RegisterBundles(BundleTable.Bundles);

 protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();

            WebApiConfig.Register(GlobalConfiguration.Configuration);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles); // add this
        }

-5

Các MS trang web chính thức quốc gia trong khi Debugging nó không thể kích hoạt nó. Tôi nghĩ lý do là, nó dễ gỡ lỗi hơn khi nó bị vô hiệu hóa. Nếu bạn muốn kiểm tra Tác động lên ứng dụng của mình, bạn phải đặt <compilation debug="true" />trong Web.config

@Hebe: Để trích dẫn trang MS

Thật dễ dàng để gỡ lỗi JavaScript của bạn trong môi trường phát triển (nơi Phần tử biên dịch trong tệp Web.config được đặt thành debug = "true") vì các tệp JavaScript không được đóng gói hoặc rút gọn.


Trong trường hợp của tôi, tôi chỉ muốn gỡ lỗi mã C # phụ trợ và do cách ứng dụng của chúng tôi được thiết lập, chúng tôi cần gói để tất cả các bảng định kiểu và tập lệnh tải đúng cách.
MLowijs

3
@Ennosuke - Mặc dù có thể dễ dàng gỡ lỗi hơn, nhưng đôi khi có lỗi Javascript do quá trình thu nhỏ gây ra yêu cầu bạn có thể chạy các tập lệnh được rút gọn cục bộ.
Joe the Coder
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.