2

当您添加脚本包并具有以下内容时:

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

它加载原始 Jquery 版本和缩小版本。这些文件都在 Scripts 文件夹中,所以我假设星号完全按照你说的做。

有没有办法在 debug=false 模式下只呈现缩小版本,在 debug=true 下呈现原始版本?

还是归结为实际指定您想要的确切文件而不是使用星号?

问候, 雅克

4

2 回答 2

4

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

于 2012-07-30T18:32:25.870 回答
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)。

请参阅MVC4 Bundle 中的捆绑和缩小以及{version} 通配符

但是,如果您在目录中同时拥有 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,这意味着此版本和未缩小版本都已添加到捆绑包中。

于 2013-09-10T09:58:15.383 回答