6

Chạy trong gỡ lỗi từ ứng dụng VS 2013.2RTM Pro, MVC 5.1.Gỡ lỗi MVC 5.1 được bật không tắt tính năng Đóng gói và rút gọn

Nếu chế độ biên dịch được đặt thành debug = "true", nó được cho là tắt tính năng Đóng gói và rút gọn nhưng không được. Khi tôi kiểm tra nguồn Xem trên trang, các kiểu và tập lệnh được nhóm lại.
<script src="/bundles/modernizr?v=K-FFpFNtIXjnmlQamnX3qHX_A5r984M2xbAgcuEm38iv41"></script>

Nếu tôi đặt BundleTable.EnableOptimizations = false; trong BundleConfig.cs nó vô hiệu hóa Đóng bó và việc rút gọn nhưng đó không phải là cách nó được cho là để làm việc. Tôi không nên nhớ phải chuyển đổi cài đặt EnableOptimizations!

Mọi thứ hoạt động bình thường trong ứng dụng MV 2012 4 của VS 2012.

Đây có phải là lỗi MVC 5.1 không? Có ai khác có vấn đề này không? Có cách nào để gỡ lỗi để tắt tính năng Bundling và minification không?

web.config:

<system.web> 
    <authentication mode="None" /> 
    <compilation debug="true" targetFramework="4.5" /> 
    <httpRuntime targetFramework="4.5" useFullyQualifiedRedirectUrl="true" maxRequestLength="100000" enableVersionHeader="false" /> 
    <sessionState cookieName="My_SessionId" /> 
    <httpModules> 
     <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" /> 
     <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" /> 
     <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" /> 
    </httpModules> 
    </system.web> 

_Layout.cshtml:

Trong tiêu đề

@Styles.Render("~/Content/css") @Styles.Render("~/Content/themes/base/css") @Scripts.Render("~/bundles/modernizr")

Cuối cùng của cơ thể

@Scripts.Render("~/bundles/jquery") @Scripts.Render("~/bundles/jqueryui") @Scripts.Render("~/bundles/jqueryval")

+3

Cũng có chuyên gia này blem – Jason

+0

@Jason kiểm tra câu trả lời của tôi bên dưới – abdelrady

Trả lời

0

Tôi cũng thấy điều này trong phiên bản phát hành. Để có được xung quanh nó, tôi đang sử dụng cờ có điều kiện để đạt được hiệu quả tương tự.

 BundleTable.EnableOptimizations = true; 

#if DEBUG 
     BundleTable.EnableOptimizations = false; 
#endif 
0

Bạn có thể có một cái nhìn vào bài viết này http://codemares.blogspot.com.eg/2012/03/disable-minification-with-mvc-4-bundles.html

hoặc bạn có thể sử dụng thực hiện đơn giản này

public class NoMinifyTransform : JsMinify 
{ 
    public override void Process(BundleContext context, BundleResponse response) 
    { 
     context.EnableOptimizations = false; 
     var enableInstrumentation = context.EnableInstrumentation; 
     context.EnableInstrumentation = true; 
     base.Process(context, response); 
     context.EnableInstrumentation = enableInstrumentation; 
    } 
} 

và sau đó khi xác định các kịch bản của bạn bó trong (App_Start), bạn có thể sử dụng lớp Bundle cơ sở như thế này

  IBundleTransform jsTransformer; 
#if DEBUG 
      BundleTable.EnableOptimizations = false; 
      jsTransformer = new NoMinifyTransform(); 
#else 
      jstransformer = new JsMinify(); 
#endif 
      bundles.Add(new Bundle("~/TestBundle/alljs", jsTransformer) 
       .Include("~/Scripts/a.js") 
       .Include("~/Scripts/b.js") 
       .Include("~/Scripts/c.js")); 
Các vấn đề liên quan