我目前正在开发一个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 --%>
我希望做的是使这个条件语句能够确保有某些内容可以渲染,如果没有,那么就不要渲染(因为我们正在尝试优化加载时间。
对此有任何建议将不胜感激。
由于