Styles.Render和Scripts.Render无法在不同区域正确呈现

时间:2013-10-05 03:08:54

标签: asp.net-mvc bundle asp.net-mvc-areas

我的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("~", "");
    }  

在第1区/登录页面,我正在调用这样的包:

@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"/>  

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

0 个答案:

没有答案