8

I want to be able to minify/bundle my javascript files in a production environment while having them unminified/unbundled when debugging locally; however, the default WebForms site in VS2012 does not appear to allow for it.

Steps to reproduce my issue:

  1. Create a new "ASP.NET Web Forms Application" (c# in my case)
  2. Start without debugging and view resources in browser
  3. Notice unminified jquery/modernizr files but bundled/minified MsAjaxJS and WebFormsJs

web.config, by default has:

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

And I've even tried modifying the Global.asax by explicitly telling BundleTable not to optimize:

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

Yet, I still get undebuggable javascript files:

Chrome Dev tools (showing minified/bundled files)

This site (which I realize is for MVC) tells me that either debug="true" in the web.config or BundleTable.EnableOptimizations = false; in Global.asax should turn off the functionality. And this site, (which is for WebForms and is linked from the first), doesn't mention turning it off for debugging.

How might I (cleanly) tell my project to only minify/bundle when debug="false"?

(I'm using ASP.NET 4.5)

EDIT:
This question and this question are similar, but they both only offer a solution using Scripts.Render(). Is there a way to accomplish this with the templated method of using the ScriptManager?

Community
  • 1
  • 1
snumpy
  • 2,808
  • 6
  • 24
  • 39

2 Answers2

7

Add the following code to your Global.asax.cs file in the Application_Start method. This works perfectly for me.

#if DEBUG
       foreach (var bundle in BundleTable.Bundles)
       {
           bundle.Transforms.Clear();
       }
#endif
Justin Russo
  • 2,214
  • 1
  • 22
  • 26
1

I had a similar issue before. I solved my problem by putting this code

BundleTable.EnableOptimizations = false;

after

BundleConfig.RegisterBundles(BundleTable.Bundles);
Jim U
  • 3,318
  • 1
  • 14
  • 24