asp.net mvc脚本包添加所有文件

时间:2012-07-30 13:59:49

标签: asp.net-mvc asp.net-mvc-4 asp.net-optimization

添加脚本包时,如下所示:

bundles.Add(new ScriptBundle("~/bundles/base.scripts").Include(
                            "~/Scripts/jquery-1*"));

它加载原始Jquery版本和缩小版本。这些文件都在Scripts文件夹中,因此我假设星号正在完成您所说的内容。

有没有办法在debug = false模式下只有缩小版本渲染,而debug = true中的原始版本?

或者是实际指定您想要的文件而不是使用星号?

此致 雅克

2 个答案:

答案 0 :(得分:4)

这应该通过BundleCollection的FileExtensionReplacementList自动发生,当调试= false时,应该选择文件的.min版本。创建新项目时的默认模板也应该使用此功能。

答案 1 :(得分:1)

虽然这个问题已经过了一年多了,如果有人因为同一问题需要帮助而遇到困难,Bundling会引入{version}通配符,该通配符使用正则表达式来查找典型的版本号模式(例如如1.9.1)所以当你手动或通过NuGet更新包时,你不必去更改你的Bundles配置。

从名为.min.js和.js的文件中选择也很聪明 - 在发布配置中使用前者,在调试中使用后者,这正是OP所追求的。

  

对于ASP.NET MVC 4,这意味着使用调试配置文件   jquery-1.7.1.js将被添加到包中。在一个版本中   配置,将添加jquery-1.7.1.min.js。捆绑   框架遵循几个常见的约定,例如:

     
      
  • 当“FileX.min.js”和“FileX.js”存在时,选择“.min”文件进行发布。
  •   
  • 选择非“.min”版本进行调试。
  •   
  • 忽略仅由IntelliSense使用的“-vsdoc”文件(例如jquery-1.7.1-vsdoc.js)。
  •   

请参阅Bundling and Minification{version} wildcard in MVC4 Bundle

警告的话,如果目录中同时包含jQuery-1.9.1.js和jQuery-1.10.2.js,那么两者将被匹配并添加到捆绑 - 显然不可取的东西。

另请注意,文件的缩小版本必须命名为file.min.js,而不是file-min.js或min.file.js才能生效。例如,当您通过NuGet获取它时,YepNope库名为yepnope.1.5.4-min.js,这意味着将此和未分类的版本添加到捆绑包中。