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ファイルを検索して含めることです。1 つだけが存在することを確認しないと、バグが発生する可能性がありますjquery-ui.css

(サブディレクトリを検索すると、ルート ディレクトリ、つまり ~/Content も検索されることに注意してください)

于 2013-08-22T00:31:05.217 に答える