我希望能够在生产环境中缩小/捆绑我的
javascript文件,同时在本地调试时让它们不受限制/非捆绑;但是,VS2012中的默认WebForms站点似乎不允许它.
重现我的问题的步骤:
>创建一个新的“ASP.NET Web窗体应用程序”(在我的例子中为c#)
>无需调试即可启动并在浏览器中查看资源
>注意未经明确的jquery / modernizr文件,但捆绑/缩小了MsAjaxJS和WebFormsJs
web.config,默认情况下有:
<compilation debug="true" targetFramework="4.5">
我甚至尝试通过明确告诉BundleTable不要优化来修改Global.asax:
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); }
然而,我仍然得到不可判断的javascript文件:
This site(我意识到是针对MVC)告诉我web.config中的debug =“true”或者BundleTable.EnableOptimizations = false;在Global.asax应该关闭功能.而this site(用于WebForms并且从第一个链接起来)并未提及将其关闭以进行调试.
我怎么能(干净地)告诉我的项目只在debug =“false”时缩小/捆绑?
(我正在使用ASP.NET 4.5)
编辑:
This question和this question类似,但它们都只提供使用Scripts.Render()的解决方案.有没有办法用模板化的ScriptManager方法完成这个?
解决方法
将以下代码添加到Application_Start方法中的Global.asax.cs文件中.这对我来说非常适合.
#if DEBUG foreach (var bundle in BundleTable.Bundles) { bundle.Transforms.Clear(); } #endif