Sitecore 7:将视图渲染中的CSS组合到布局中<;头>;地区
这可能是一个新手Qs。。。我正在为我的web应用程序使用Sitecore 7,这就是我目前所拥有的Sitecore 7:将视图渲染中的CSS组合到布局中<;头>;地区,sitecore,sitecore7,Sitecore,Sitecore7,这可能是一个新手Qs。。。我正在为我的web应用程序使用Sitecore 7,这就是我目前所拥有的 数据模板-只有一个名为“标题”的字段显示页面特定的标题 一个布局-指向asp.net mvc项目路径下的cshtml文件。它具有从Doctype开始的完整标记。head标记下的title标记使用Sitecore的Html扩展来呈现#1中提到的模板中的字段“title”。这还通过布局的主体标记下名为“页面主体”的占位符呈现sitecore的视图 我在asp.net mvc项目中创建了一个指向Razo
在这一点上,我完全陷入了“如何在head标签中获得视图渲染的CSS引用”的困境。是否有sitecore专家在此提供帮助?因此,这无疑是一种更高级的定制,但我们使用和对
渲染布局
管道进行了定制。使用此管道可以解决在视图渲染之前调用head标记中的辅助对象的问题
/sitecore/templates/System/Layout/Renderings/view rendering
),并添加一个字段,用于存储要包含在页面上的盒式磁带包的名称RenderLayoutProcessor
中,循环浏览所有页面渲染(Sitecore.Context.page.renderings
),检查bundle字段的渲染项(rendering.RenderingItem.InnerItem[your_字段]
),并调用CASE的Bundles.Reference
)Bundles.RenderStylesheets()
这种方法的另一个优点是它不会破坏Sitecore缓存。任何需要在视图渲染中执行代码的方法都会使Sitecore HTML缓存变得无用,因为在缓存渲染时,代码将不会执行,页面样式将被破坏。为什么不在所有页面上包含所有CSS,并使用CSS选择器只针对渲染中的内容,通过
ID
或cssclass
选择器?对我来说,这听起来太过分了。卡带正在做什么,即使IIS请求减少模块也可以为我做,而无需添加一行代码。只要我在头部有所有CSS,在页面底部有所有脚本,IIS请求Reduce就会在运行时合并、缩小和所有这些好东西。我不明白的是“为什么Sitecore不允许我使用Section和RenderSection”。尽管视图渲染中提到了布局文件,但Sitecore不喜欢将RenderSection调用添加到布局文件中。我对Sitecore MVC了解不够,无法回答这个问题,但我认为您会发现这种方法可能会使您无法利用Sitecore的HTML缓存。