C#MVC Bundle - 检查文件是否在Bundle中

时间:2016-07-07 17:32:10

标签: c# asp.net-mvc asp.net-mvc-4 bundle

我目前正在开发一个C#MVC项目,该项目基于站点定义将为该站点加载一个包。但是,并非所有站点都在其包中包含文件(但在BundleConfig.cs中确实有定义)。

BundleConfig.cs代码段

var BHICustomBundles = BHI.WCMS.Helper.Configuration.CustomSiteConfigurationManager.getBundles();
foreach (var item in BHICustomBundles)
{
    // Set up JavaScript Bundle
    if ((item.JavascriptBundle != null) && (item.JavascriptBundle.Count > 0))
    {
        bundles.Add(new ScriptBundle("~/bundles/CustomJS_" + item.name).Include(item.JavascriptBundle.ToArray()));
    }
    else
    {
        bundles.Add(new ScriptBundle("~/bundles/CustomJS_" + item.name));
    }

    // Set up CSS Bundle
    if ((item.CssBundle != null) && (item.CssBundle.Count > 0))
    {
        bundles.Add(new StyleBundle("~/bundles/CustomCSS_" + item.name).Include(item.CssBundle.ToArray()));
    }
    else
    {
        bundles.Add(new StyleBundle("~/bundles/CustomCSS_" + item.name));
    }
}

正如您在上面的代码中看到的,我浏览了一个配置文件,并在配置文件中的每个位置添加了一个自定义的ScriptBundle和StyleBundle。 (这是在SiteCore中,所以每个定义都是单独处理,这是有效的)

现在,配置部分如下所示:

<?xml version="1.0" encoding="utf-8" ?>
<CustomSiteConfiguration>
    <Sites>
        <Site siteRoot="/Partner" name="Partner_en">
            <siteSettings>
                <setting name="" value="" />
            </siteSettings>
            <JavaScriptBundles>
                <file name="" />
            </JavaScriptBundles>
            <CSSBundles>
                <file name="" />
            </CSSBundles>
        </Site>
    </Sites>
 </CustomSiteConfiguration>

每个部分都是可选的。因此,特定站点可能没有捆绑(或文件),但是,我包括捆绑(因为它存在于BundleConfig.cs中)

这是包含捆绑包

的default.aspx页面代码段
<%: Styles.Render("~/bundles/CustomCSS_" + Sitecore.Context.Site.Name) %>    <%-- Added for custom CSS bundle - rwh2 2016-05-18 --%>

我希望做的是使这个条件语句能够确保有某些内容可以渲染,如果没有,那么就不要渲染(因为我们正在尝试优化加载时间。

对此有任何建议将不胜感激。

由于

0 个答案:

没有答案