Include
方法和IncludeDirectory
方法中的搜索模式中指定的虚拟路径可以接受一个"*"通配符字符作为前缀或后缀,以在最后一个路径段。搜索字符串是大小写不敏感的。IncludeDirectory
方法具有选择搜索子目录。
考虑一个项目,用以下的 JavaScript 文件:
- ScriptsCommonAddAltToImg.js
- ScriptsCommonToggleDiv.js
- ScriptsCommonToggleImg.js
- ScriptsCommonSub1ToggleLinks.js
下表显示添加到捆绑使用通配符,如图所示的文件:
调用 | 添加文件或引发异常 |
Include("~/Scripts/Common/*.js") | AddAltToImg.js,ToggleDiv.js,ToggleImg.js |
Include("~/Scripts/Common/T*.js") | 无效的模式异常。通配符字符只允许对前缀或后缀。 |
Include("~/Scripts/Common/*og.*") | 无效的模式异常。只有一个通配符被允许。 |
"Include("~/Scripts/Common/T*") | ToggleDiv.js ToggleImg.js |
"Include("~/Scripts/Common/*") | 无效的模式异常。纯通配符段不是有效的。 |
IncludeDirectory ("~/Scripts/Common","T *") | ToggleDiv.js ToggleImg.js |
IncludeDirectory ("~/Scripts/Common","T *",真实) | ToggleDiv.js,ToggleImg.js,ToggleLinks.js |
显式地将每个文件添加到一捆是一般首选通配符过载的原因如下文件:
- 向加载它们按字母顺序,通常不是你想要默认通配符添加脚本。CSS 和 JavaScript 文件经常需要添加特定的 (非字母) 顺序。通过添加一个自定义的IBundleOrderer实现,但显式添加每个文件都不容易出错,可以降低这种风险。例如,您可以添加新的资产到文件夹在将来可能需要您修改您的IBundleOrderer实现。
- 查看特定文件添加到使用通配符加载一个目录可以包含在引用这些捆绑在一起的所有视图。如果查看特定脚本添加到包,你能得到一个 JavaScript 错误引用捆绑其他视图。
- 导入其他文件的 CSS 文件会导致在导入的文件加载两次。例如,下面的代码创建一束与大多数的 jQuery UI 主题 CSS 文件加载两次。
bundles.Add(new StyleBundle("~/jQueryUI/themes/baseAll") .IncludeDirectory("~/Content/themes/base", "*.css"));