1

有没有办法让 MVC4 的捆绑系统在调试模式下包含脚本/样式?

例如,我有很多调试模式脚本可以帮助我调试系统。我显然不希望它们在系统处于发布模式时呈现。

我想到了使用这样的块:

  bundles.Add(
    new ScriptBundle("mybundle")
    .Include(
      "~/scripts/foo.js",
      "~/scripts/bar.js"
      #if DEBUG
      ,"~/scripts/baz-debug.js"
      #endif
    )
  );

但调试模式应通过web.config.

那么正确的做法是什么?

4

1 回答 1

3

要检查是否启用了调试,您可以使用以下命令:

HttpContext.Current.IsDebuggingEnabled

前提是 HttpContext 是可访问的。如果没有,更长的方法将是这个:

var isDebug =(System.Web.Configuration.CompilationSection)ConfigurationManager.GetSection("system.web/compilation").Debug;

这两个建议都来自这篇文章:How do I check if Debug is enabled in web.config

我实际上有条件地添加模块的方法是首先创建一个Dictionary<string, bool>脚本路径以及是否应该在发布模式下添加它们。

当您调用程序时,如果调试为假,则只需将字典过滤为元素集合:

var includes = dict.Where(x => x.Value).Select(x => x.Key);

然后将结果传递给您的Include语句。

于 2012-12-12T13:30:09.947 回答