添加脚本包时,如下所示:
bundles.Add(new ScriptBundle("~/bundles/base.scripts").Include(
"~/Scripts/jquery-1*"));
它加载原始Jquery版本和缩小版本。这些文件都在Scripts文件夹中,因此我假设星号正在完成您所说的内容。
有没有办法在debug = false模式下只有缩小版本渲染,而debug = true中的原始版本?
或者是实际指定您想要的文件而不是使用星号?
此致 雅克
答案 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,这意味着将此和未分类的版本添加到捆绑包中。