2013-07-29 41 views
2

是否可以根据应用程序的调试设置来添加或删除软件包中的脚本?ASP.NET MVC绑定 - 仅在调试模式下包含脚本

I.e.给定一个包定义OF-

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

卸下jQuery的迁移基准时,该网站是在调试配置文件中运行,或者相反,在调试添加。

Nb。我确实想出了一个解决方案,同时制定了这个问题,我测试了它,它似乎工作。我已经回答了这个问题,但现在应该提供一个更好的解决方案,让它现在不被接受。与此同时,如果任何人想要使用它,答案将至少现在可供参考。

回答

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); 

我已经测试这一点,并同时调试脚本列(I都保留的在调试模式下捆绑和缩小离开的默认值),并同时正常运行迁移脚本的内容不是在组合精缩脚本。在接下来的几天里,我会将这个概要与“vanilla”捆绑进行比较,以了解它对应用程序启动的性能影响(如果有的话)。