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?

4
  • 2
    Have you found an answer to this? I am facing the same problem Commented Jun 17, 2014 at 23:40
  • Did you ever resolve this with a ScriptManager? Commented Jul 28, 2014 at 20:22
  • See my answer below. Commented Jan 21, 2015 at 18:17
  • Can you mark my answer below as 'Answer'? I'd appreciate it greatly. :) Commented Mar 13, 2017 at 14:27

2 Answers 2

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
Sign up to request clarification or add additional context in comments.

Comments

1

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

BundleTable.EnableOptimizations = false;

after

BundleConfig.RegisterBundles(BundleTable.Bundles);

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.