1

我的 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"/>  

它无法加载...我该怎么办?我一直在寻找答案,但没有找到运气。

4

0 回答 0