7

RCを使用しており、NuGetを使用してすべてが最新であることを確認しました。私のglobal.asax.csで、iveは次のようになりました。

BundleTable.Bundles.AddDefaultFileExtensionReplacements();
BundleTable.Bundles.AddDefaultIgnorePatterns();
BundleTable.Bundles.AddDefaultFileOrderings();

Bundle scripts = new Bundle("~/Scripts");
scripts.IncludeDirectory("~/Scripts", "*.js");
BundleTable.Bundles.Add(scripts);

Bundle css = new Bundle("~/Content/css");
css.IncludeDirectory("~/Content/css", "*.css", false);
BundleTable.Bundles.Add(css);

私はこれのいくつかの異なる構成を改善せずに試しました。

それから私のレイアウトでiveは得ました:

<link href="@BundleTable.Bundles.ResolveBundleUrl("~/Content/css")" rel="stylesheet" type="text/css" />
<script src="@BundleTable.Bundles.ResolveBundleUrl("~/Scripts")"> </script>

ページが読み込まれると、まともなURLが表示されます。

<link href="/Content/css?v=QAsFYXHCbnaU70oGVxpgi9py9iKQrT9C4BVNdHa7xoI1" rel="stylesheet" type="text/css" />

しかし、そのURLは次の場所にリダイレクトされます。

/Content/css/

404notfoundエラーを返します...

バンドルリダイレクト...

誰かアイデアがありますか?

4

2 に答える 2

6

〜/ Scriptsと〜/ Content / cssの仮想パスはすでにディスク上に存在するため、それらを仮想URLにする必要があります。たとえば、〜/ Scripts / jsと〜/ Content / stylesは、これで問題ありません。

Bundle scripts = new Bundle("~/Scripts/js");
scripts.IncludeDirectory("~/Scripts", "*.js");
BundleTable.Bundles.Add(scripts);

Bundle css = new Bundle("~/Content/styles");
css.IncludeDirectory("~/Content/css", "*.css", false);
BundleTable.Bundles.Add(css);

また、MVC4では、ルーティング、バンドル、およびフィルターの構成がに移動されました。

〜/ App_Start /(RouteConfig、BundleConfig、FilterConfig).cs

持っていることを確認してください。ある場合は、そこに構成を書き込んでください。

于 2012-06-27T22:28:21.847 に答える
4

リクエストを処理するかどうかを決定するバンドルモジュールロジックは、既存のファイルまたはディレクトリへのリクエストを引き継ぎません。そのため、バンドルリクエストは、既存のディレクトリ(またはファイル)と同じ仮想パスに存在する場合は機能しません。

于 2012-06-29T23:14:12.207 に答える