Sitecore 6.4中的内容和演示因主机名而异 [英] Varying content and presentation by host name in Sitecore 6.4
本文介绍了Sitecore 6.4中的内容和演示因主机名而异的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
场景: 内容树的一部分是以两个主机名(www.site1.com和www.site2.com)运行的站点的主页项目
这两个主机名的目的是区分提供相同内容的两个目标国家/地区和相同的组织(市场部、网络编辑等)
当然,这两个主机名的内容是相同的。
除了.
在几个地方,我们需要一些小的差异。例如,一封联系电子邮件或一份法律通知(这些都只是Sitecore的内容)。在其他地方,我们可能希望能够根据项目所在的宿主上下文更改项目的表示组件。我们可能希望对特定模板中的所有项目执行此操作。
使问题复杂化的是,该站点已经从另一个站点(www.siteA.com)克隆而来,该站点是不同国家/地区的几个克隆(一些已翻译)的来源。这是为了使我们能够向我们的子公司推送新项目/内容更改/功能。因此,所有模板和演示组件已经在许多宿主上下文和内容树的许多部分之间共享。是否有任何Sitecore功能可以实现这一点/很简单-或者我们是否需要将上下文测试编码到我们的演示组件中(假设与Sitecore中的一些配置项一起,以避免硬编码值)?
推荐答案
好问题。这不太可能,但可能会奏效:
为什么不为Site2创建一个新设备,并在Site2演示文稿数据需要更改的情况下,配置Site2设备的演示文稿设置。如果没有,请不要设置它们,默认设备将呈现内容。这里的难点将是配置设备将如何解析。也许您可以在<httpRequestBegin>
管道中创建自定义设备解析器:
<processor type="Sitecore.Pipelines.HttpRequest.BeginDiagnostics, Sitecore.Kernel"/>
<!--<processor type="Sitecore.Pipelines.HttpRequest.DeviceResolver, Sitecore.Kernel"/>-->
<processor type="YourProject.Pipelines.HttpRequest.DeviceResolver, YourProject"/>
<processor type="Sitecore.Pipelines.HttpRequest.LanguageResolver, Sitecore.Kernel"/>
在您的处理器中,您可以查看主机以确定使用哪个主机。
您还可以在新的<site ... />
节点上定义Site2设备,如下所述。类似以下内容:
<site name="site1" hostName="site1.com" rootPath="/sitecore/content" startItem="/home" ... />
<site name="site2" hostName="site1.com" device="Site2" rootPath="/sitecore/content" startItem="/home" ... />
站点1和站点2都指向树的相同部分,它们只是使用不同的设备。
这篇关于Sitecore 6.4中的内容和演示因主机名而异的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文