15

Khi tôi chạy ứng dụng ASP.NET MVC 4 ở chế độ phát hành, các gói vẫn xuất ra các tệp js chưa được phân tách và riêng biệt, thay vì đóng gói và rút gọn nó thành các tệp JavaScript được đóng gói ít hơn.Chạy một ứng dụng ASP.NET MVC 4 trong chế độ phát hành không bó và minifiy các tệp js

Bất kỳ ý tưởng nào?

FYI, phát hành cấu hình:

<?xml version="1.0"?> 
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> 
    <system.web> 
    <compilation xdt:Transform="RemoveAttributes(debug)" /> 
    </system.web> 
</configuration> 
+0

[Có thể điều này sẽ giúp bạn] (http://stackoverflow.com/a/11956652/703607) – Verkion

Trả lời

35

Nhờ bình luận aleyush rằng Web.release.config chỉ được sử dụng trong quá trình xuất bản các ứng dụng, và không phải khi chạy nó tại địa phương, tôi đã có thể sửa chữa nó bằng cách thêm các dòng sau vào BundleConfig.cs file:

#if !DEBUG 
BundleTable.EnableOptimizations = true; 
#endif 

Vì chế độ gỡ lỗi sẽ xác định hằng số DEBUG và trong chế độ Phát hành nó không được xác định, dòng này sẽ chỉ thực thi trong chế độ Phát hành. (Bạn có thể kiểm tra nó bằng cách thiết lập một breakpoint)

+0

Cảm ơn bạn. Câu trả lời này phải là câu trả lời được chấp nhận. – Hooch

+0

cổ vũ, hoạt động tốt – FutuToad

2
  1. Không có gì đã được đóng gói hoặc minified nếu debug được thiết lập là true trong file Web.config để bạn có thể dễ dàng gỡ lỗi đầu ra.

  2. Nếu bạn muốn ghi đè này, chỉ cần thêm dòng mã sau vào tập tin BundleConfig của bạn:

    BundleTable.EnableOptimizations = true;

+0

thuộc tính gỡ lỗi được đặt thành false: RemoveAttributes (debug) – FutuToad

+6

Web.release.config chỉ được sử dụng khi bạn xuất bản trang web của bạn. http://blogs.msdn.com/b/webdev/archive/2010/10/26/asp-net-web-projects-web-debug-config-amp-web-release-config.aspx – aleyush

0

này làm việc cho tôi

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

VS sẽ nhắc nếu bạn muốn bật gỡ lỗi khi bạn chạy, chọn không và thao tác này sẽ hoạt động! – rkawano

0

bó của tôi là quá lớn. Tôi phải chia nó thành những phần nhỏ hơn và nó hoạt động tốt. Có thể một số biến bị xung đột sau khi rút gọn.

Đặt dòng này vào cuối bundleconfig của bạn chỉ dành cho kiểm tra ...

BundleTable.EnableOptimizations = true; 

Nếu bạn mở file được rút gọn, bạn sẽ thấy một cái gì đó như thế này.

/* Minification failed. Returning unminified contents. 
    (5079,1-2): run-time warning JS1195: Expected expression: . 
    (5080,18-19): run-time warning JS1004: Expected ';': : 
    (5084,18-19): run-time warning JS1004: Expected ';': : 
    (5091,18-19): run-time warning JS1004: Expected ';': : 
    (5095,20-21): run-time warning JS1197: Too many errors. The file might not be a JavaScript file: ; 
..... 

Phá vỡ gói của bạn, bạn có thể cách ly vấn đề.

Hy vọng điều này có thể giúp ai đó.

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