【问题标题】:Turn off bundling/minification while debugging in WebForms在 WebForms 中调试时关闭捆绑/缩小
【发布时间】:2014-05-15 22:05:13
【问题描述】:

我希望能够在生产环境中缩小/捆绑我的 javascript 文件,同时在本地调试时将它们取消缩小/取消捆绑;但是,VS2012 中的默认 WebForms 站点似乎不允许这样做。

重现我的问题的步骤:

  1. 创建一个新的“ASP.NET Web 窗体应用程序”(在我的例子中是 c#)
  2. 无需调试即可启动并在浏览器中查看资源
  3. 注意未缩小的 jquery/modernizr 文件,但捆绑/缩小了 MsAjaxJSWebFormsJs

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" 或 Global.asax 中的 BundleTable.EnableOptimizations = false; 应该关闭该功能。而this site,(用于 WebForms 并且从第一个链接开始)没有提到将其关闭以进行调试。

我如何(干净地)告诉我的项目只在 debug="false" 时缩小/捆绑?

(我使用的是 ASP.NET 4.5)

编辑:
This questionthis question 相似,但它们都只提供使用 Scripts.Render() 的解决方案。有没有办法通过使用 ScriptManager 的模板化方法来实现这一点?

【问题讨论】:

  • 你找到答案了吗?我也面临同样的问题
  • 你用 ScriptManager 解决过这个问题吗?
  • 在下面查看我的答案。
  • 您能在下面将我的答案标记为“答案”吗?我将不胜感激。 :)

标签: asp.net webforms bundle minify asp.net-optimization


【解决方案1】:

在 Application_Start 方法中将以下代码添加到 Global.asax.cs 文件中。这对我来说非常有效。

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

【讨论】:

    【解决方案2】:

    我之前也遇到过类似的问题。我通过输入这段代码解决了我的问题

    BundleTable.EnableOptimizations = false;
    

    之后

    BundleConfig.RegisterBundles(BundleTable.Bundles);
    

    【讨论】:

      猜你喜欢
      • 2013-11-23
      • 1970-01-01
      • 1970-01-01
      • 2016-07-27
      • 1970-01-01
      • 1970-01-01
      • 2017-03-04
      • 2017-12-13
      • 2014-11-26
      相关资源
      最近更新 更多