2014-04-03 24 views
6

Desidero essere in grado di minimizzare/raggruppare i miei file javascript in un ambiente di produzione mentre li ho annullati/non raggruppati durante il debug localmente; tuttavia, il sito WebForms predefinito in VS2012 non sembra consentirlo.Disattivazione bundling/minification durante il debug in WebForm

Procedura per riprodurre il mio problema:

  1. Creare un nuovo "Forme ASP.NET Web Application" (C# nel mio caso)
  2. Avvia senza eseguire debug e visualizzare le risorse in del browser
  3. Avviso jquery unminified/file Modernizr ma in bundle/minified MsAjaxJS e WebFormsJs

web.config, per impostazione predefinita è:

<compilation debug="true" targetFramework="4.5"> 

e ho anche provato la modifica del Global.asax dicendo esplicitamente BundleTable non per ottimizzare:

void Application_Start(object sender, EventArgs e) 
{ 
    // Code that runs on application startup 
    BundleTable.EnableOptimizations = false; 
    BundleConfig.RegisterBundles(BundleTable.Bundles); 
    AuthConfig.RegisterOpenAuth(); 
    RouteConfig.RegisterRoutes(RouteTable.Routes); 
} 

Eppure, ho ancora ottenere file javascript undebuggable:

Chrome Dev tools (showing minified/bundled files)

This site (che mi rendo conto è per MVC) mi dice che sia debug="true" nel web.con fig o BundleTable.EnableOptimizations = false; in Global.asax dovrebbe disattivare la funzionalità. E this site, (che è per WebForms ed è collegato dal primo), non menziona l'disattivazione per il debug.

In che modo è possibile (in modo pulito) comunicare al mio progetto solo minify/bundle quando debug = "false"?

(sto usando ASP.NET 4,5)

EDIT:
This question e this question sono simili, ma entrambi offrono solo una soluzione che utilizza Scripts.Render(). C'è un modo per farlo con il metodo basato su modelli di utilizzo di ScriptManager?

+2

Hai trovato una risposta a questo? Sto affrontando lo stesso problema – Farax

+0

Hai mai risolto questo problema con uno ScriptManager? –

+0

Vedere la mia risposta qui sotto. –

risposta

5

Aggiungere il seguente codice al file Global.asax.cs nel metodo Application_Start. Questo funziona perfettamente per me.

#if DEBUG 
     foreach (var bundle in BundleTable.Bundles) 
     { 
      bundle.Transforms.Clear(); 
     } 
#endif 
0

Ho avuto un problema simile prima. Ho risolto il mio problema mettendo questo codice

BundleTable.EnableOptimizations = false; 

dopo

BundleConfig.RegisterBundles(BundleTable.Bundles); 
Problemi correlati