2014-04-03 8 views
6

Ich möchte meine Javascript-Dateien in einer Produktionsumgebung minimieren/bündeln können, während sie beim lokalen Debuggen unmi nifiziert/entbündelt werden; Die WebForms-Standardwebsite in VS2012 scheint dies jedoch nicht zuzulassen.Deaktivieren der Bündelung/Verkleinerung während des Debuggens in WebForms

Schritte mein Problem zu reproduzieren:

  1. Erstellen Ihnen eine neue "ASP.NET Web Forms-Anwendung" (C# in meinem Fall)
  2. Starten ohne Debuggen und Ansicht Ressourcen in Browser
  3. Hinweis unminified jquery/modernizr Dateien, sondern gebündelt/minimierte MsAjaxJS und WebFormsJs

web.config, hat in der Standardeinstellung:

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

Und ich habe sogar versucht, die Global.asax Modifizierung von explizit BundleTable nicht zu sagen zu optimieren:

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

Doch ich noch undebuggable Javascript-Dateien erhalten:

Chrome Dev tools (showing minified/bundled files)

This site (was ich realisiere, ist für MVC) sagt mir, dass entweder debug="true" in der web.con fig oder BundleTable.EnableOptimizations = false; in Global.asax sollte die Funktionalität deaktivieren. Und this site, (die ist für WebForms und ist von Anfang an verknüpft), erwähnt nicht deaktivieren für Debuggen.

Wie kann ich (sauber) meinem Projekt sagen, nur zu minimieren/bündeln, wenn debug = "false"?

(Ich verwende ASP.NET 4,5)

EDIT:
This question und this question ähnlich sind, aber sie beide nur eine Lösung anbieten Scripts.Render() verwenden. Gibt es eine Möglichkeit, dies mit der Vorlagenmethode des ScriptManagers zu erreichen?

+2

Haben Sie eine Antwort auf diese gefunden? Ich habe das gleiche Problem – Farax

+0

Haben Sie das jemals mit einem ScriptManager gelöst? –

+0

Siehe meine Antwort unten. –

Antwort

5

Fügen Sie Ihrer Datei Global.asax.cs in der Application_Start-Methode den folgenden Code hinzu. Das funktioniert perfekt für mich.

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

Ich hatte ein ähnliches Problem zuvor. Ich mein Problem gelöst, indem Sie diesen Code

setzen
BundleTable.EnableOptimizations = false; 

nach

BundleConfig.RegisterBundles(BundleTable.Bundles); 
Verwandte Themen