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

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.