2

是否可以根据应用程序的调试设置从包中添加或删除脚本?

即给定捆绑定义-

var jQueryBundle = new ScriptBundle("~/js/main").Include(
    "~/Scripts/jquery-1.{version}.js",
    "~/Scripts/jquery-migrate-{version}.js",
    "~/Scripts/script.js");

当站点未在调试配置文件中运行时删除 jquery-migrate 引用,或者相反将其添加到调试下。

NB。实际上,我在提出问题时想出了一个解决方案,我已经对其进行了测试,它似乎有效。我已经回答了这个问题,但如果有更好的解决方案,现在就让它不被接受。同时,如果有人想使用它,答案至少现在可供参考。

4

1 回答 1

4

在写出问题时,我实际上想出了一个答案。由于我无法通过搜索找到答案,所以我决定发布这个问题并回答它 - 两者都可以作为其他想要做同样事情的人的参考,并从比我更聪明的人那里获得反馈如果这是实现这一目标的最有效方式 - 甚至是明智的做法。

var jQueryBundle = new ScriptBundle("~/js/main").Include(
    "~/Scripts/jquery-1.{version}.js",
    "~/Scripts/script.js");

if (HttpContext.Current.IsDebuggingEnabled)
{
    jQueryBundle.Include("~/Scripts/jquery-migrate-{version}.js");
}

bundles.Add(jQueryBundle);

我已经对此进行了测试,并且在调试脚本时列出了(我保留了在调试模式下保留的捆绑和缩小的默认设置)并且在正常运行时迁移脚本的内容不在组合的缩小脚本中。在接下来的几天里,我将把它与“vanilla”捆绑进行比较,看看它对应用程序启动有什么(如果有的话)性能影响。

于 2013-07-29T17:24:06.033 回答