8

我的团队使用自定义 NuGet 包来安装 jQuery UI,它将主题文件放入如下目录结构中:

  • 内容
    • jquery-ui-1.10.3
      • 图片
      • jquery-ui.css
      • jquery-ui.min.css

我正在尝试使用 ASP.NET MVC 4 捆绑包将此内容包含在我的应用程序的 App_Start 文件夹中的 BundleConfig 类中,如下所示:

bundles.Add( new StyleBundle( "~/bundles/css" )
                 .Include( "~/Content/normalize-{version}.css",
                           "~/Content/jquery-ui-{version}/jquery-ui.css",
                           "~/Content/Site.css" ) );

当我运行该站点时,这会引发错误:

Directory does not exist.
Parameter name: directoryVirtualPath

我也试过:

bundles.Add( new StyleBundle( "~/bundles/css" )
                 .Include( "~/Content/normalize-{version}.css" )
                 .IncludeDirectory( "~/Content/jquery-ui-*", "*.css" )
                 .Include( "~/Content/Site.css" ) );

这也不起作用(显然)。我可以明确指定文件夹上的版本,但这会破坏使用捆绑包的部分好处。

那么如何在文件夹路径中使用通配符呢?

4

1 回答 1

6

您可以使用IncludeDirectory搜索子目录的重载版本。

假设您有以下文件:

\Root\Content\jquery-ui-1.10.3\jquery-ui.css

使用此代码查找并添加它:

.IncludeDirectory("~/Content", "jquery-ui.css", true)

这很有用,因为它总能找到jquery-ui.css,无论你把它放在哪里。

这种方法的缺点是它会搜索并包含它找到的所有 jquery-ui.css文件,如果你不能确保只有一个jquery-ui.css存在,这可能会导致一些错误。

(记住搜索子目录也会搜索根目录,即~/Content)

于 2013-08-22T00:31:05.217 回答