2

を適切に機能させるのに苦労していScriptBundleます (これが機能するはずである場合)。私がやろうとしているのは、次のように、別のバンドル (jQuery) を依存関係としてバンドルに追加することです。

bundles.Add(new ScriptBundle("~/js/myscripts")
                    .Include("~/js/jquery",
                             "~/Content/scripts/myscript.js"));

~/js/jqueryjQueryバンドルの「名前」(仮想パス)であり、そのように登録されています(依存バンドルの前):

bundles.Add(new ScriptBundle("~/js/jquery")
                    .Include("~/Content/scripts/jquery-{version}.js"));

@Scripts.Render("~/js/myscripts")私のビューで行うmyscript.jsと、HTMLにレンダリングされるだけです。jQuery への仮想パスをバンドルの名前のものから物理的な既存のものに変更すると、次のように機能します。

bundles.Add(new ScriptBundle("~/js/myscripts")
                    .Include("~/Content/scripts/jquery-{version}.js",
                             "~/Content/scripts/myscript.js"));

また、@Scripts.Render("~/js/jquery")ビューで行うと機能します。ScriptBundle動作しない別の存在しない仮想パス (名前) を参照しているだけです。これはまったく機能するはずですか?そうでない場合は、このシナリオがサポートされていない場合は例外をスローする必要があるというバグ レポートをどこに投稿できるかを知りたいです。サポートされている場合、どこに記載されていて、なぜ機能しないのですか?

4

3 に答える 3

1

レイアウト(ビュー)に配置する必要があるのは、依存関係だけです

@Scripts.Render("~/js/jquery")
@Scripts.Render("~/js/myscripts")

コメントの後に更新します。

バンドルをネストすることはできません。つまり、バンドル内にバンドルを含めることはできません。その仮想パスは、親バンドルが作成されている間は利用できない可能性があります。

とにかく、私は別のjqueryバンドル(他のまれに変更されるjsを含む)を持っていて、それ以外のすべてのjsバンドルをもう1つ持っています。ブラウザのキャッシュに適しています。

余談ですが、requireJS を見たことがありますか。すべてをバンドルしている場合は実際には必要ありませんが、依存関係が明示的になるため、js ファイルがより適切に文書化されます。

于 2012-10-26T08:49:28.717 に答える
0

これはサポートされていない機能のようですので、問題を報告しました。

于 2012-10-26T12:05:37.413 に答える