我的 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"/>
它工作正常。但是我登录后,个人资料页面(视图)渲染失败:
Area 1/User 使用了相同的代码:
@Styles.Render("bundle/css/mastercss")
等效的页面源是:
<link href="/Area1/User/bundle/css/mastercss" rel="stylesheet"/>
它无法加载...我该怎么办?我一直在寻找答案,但没有找到运气。