6

Działa w debugowaniu z wersji VS 2013.2RTM Pro, MVC 5.1.Włączenie debugowania MVC 5.1 nie wyłącza Pakowania i zmiękczania

Jeśli tryb kompilacji ustawiony jest na debugowanie = "true", powinien wyłączyć opcję łączenia i zmiękczania, ale tak się nie dzieje. Po sprawdzeniu źródła widoku na stronie style i skrypty są spakowane.
<script src="/bundles/modernizr?v=K-FFpFNtIXjnmlQamnX3qHX_A5r984M2xbAgcuEm38iv41"></script>

Jeżeli ustawić BundleTable.EnableOptimizations = false; w BundleConfig.cs to powoduje wyłączenia wiązania i minifikacji ale to nie jest, jak to ma działać. Nie powinienem pamiętać, aby przełączyć ustawienie EnableOptimizations!

Rzeczy działają poprawnie w aplikacjach VS 2012 MVC 4.

Czy to błąd MVC 5.1? Czy ktoś jeszcze miał ten problem? Czy istnieje sposób, aby uzyskać debugowanie, aby wyłączyć wiązanie i zminimalizowanie?

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:

W nagłówku

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

Pod koniec ciała

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

+3

Również posiadanie tego pro blem – Jason

+0

@Jason sprawdź poniżej moją odpowiedź – abdelrady

Odpowiedz

0

Widzę to również w wersji Release. Aby obejść ten problem, używam flag warunkowych, aby osiągnąć ten sam efekt.

 BundleTable.EnableOptimizations = true; 

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

Możesz rzucić okiem na ten artykuł http://codemares.blogspot.com.eg/2012/03/disable-minification-with-mvc-4-bundles.html

czy można użyć tego prosta implementacja

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; 
    } 
} 

a następnie przy definiowaniu skrypt wiązki w (App_Start) można użyć baza Klasa pakietu podobna do tej

  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"));