私の mvc プロジェクトには少なくとも 3 つの領域があります。
すべての css ファイルと js ファイルは、それぞれルートの Css フォルダーと JS フォルダーにあります。"~/css/" ~/js/
次のように Global.asax ファイル内にバンドルを登録します。
BundleTable.Bundles.Add(new StyleBundle(CssVirtualPath("mastercss"))
.Include(Css("bootstrap.min.css"), new CssRewriteUrlTransform())
.Include(Css("bootstrap-responsive.min.css"), new CssRewriteUrlTransform())
.Include(Css("normalize.css"), new CssRewriteUrlTransform())
.Include(Css("media.css"), new CssRewriteUrlTransform())
.Include(Css("jquery-ui-1.8.24.custom.css"), new CssRewriteUrlTransform())
.Include(Css("icons.css"), new CssRewriteUrlTransform())
.Include(Css("MetroJs.css"), new CssRewriteUrlTransform())
);
private static string CssVirtualPath(string filename)
{
return string.Format("~/bundle/css/{0}", RemoveSpecialChars(filename));
}
private static string Css(string filename)
{
filename = RemoveSpecialChars(filename);
return string.Format("~/css/{0}", filename);
}
private static string RemoveSpecialChars(string value)
{
return value.Replace("/", "").Replace(@"\", "").Replace("~", "");
}
Area 1/Login ページで、次のようにバンドルを呼び出しています。
@Styles.Render("bundle/css/mastercss")
ページソースで同等のものは次のとおりです。
<link href="/bundle/css/mastercss" rel="stylesheet"/>
そして、それはうまくいきます。しかし、ログインした後、プロファイル ページ (ビュー) のレンダリングが失敗します:
エリア 1/ユーザー 同じコードが使用されました:
@Styles.Render("bundle/css/mastercss")
ページソースで同等のものは次のとおりです。
<link href="/Area1/User/bundle/css/mastercss" rel="stylesheet"/>
そして、ロードに失敗します...どうすればいいですか?私は答えを探していましたが、運がありませんでした。