如何解决根据子域对不同的微站点进行换肤
| 克隆3.3.4 来自http://good-py.appspot.com/release/collective.xdv/1.0?plone=3.3.4的collection.xdv版本 摘要 根据请求中使用的URL,寻找有关如何使用xdv将不同的皮肤应用于同一站点的建议。 文本 要求 我们需要几个微型站点,每个站点都有自己的皮肤,并且与主要站点不同。 微型站点应具有主站点内容的子集。主要站点内容的一部分在微型站点上不可见,但这可以通过简单地隐藏导航,站点地图和Portlet中到这些部分的链接来实现。用户可以通过URL黑客找到隐藏的内容也可以。微型网站的HTML应该是可定制的。 每个微型站点都应通过主站点的子域进行访问。 即,将主站点设置为http://site.com,将微型站点设置为http://a.site.com、http://b.site.com等。 客户端希望能够激活一个新的微型站点,而无需进行其他开发,只需激活一些html,css和图像文件,并将一个虚拟主机添加到apache配置中即可。 可能的解决方案 Collective.xdv听起来不错,但我们仍无法弄清楚如何根据URL选择另一个theme.html文件。那里的大多数解决方案似乎都集中在基于Plone站点的子文件夹创建子站点上。我们不想为微型网站拥有不同的内容,而只是拥有不同的外观(以及某些内容从导航中隐藏),因此我们不想为每个微型网站创建新的文件夹。 我们想尝试的几个方法是:a)自定义主模板,以使其为每个子域的html主体添加一个不同的类,然后使用查找该类的xdv规则,以及b)修补发布者以执行此操作基于子域的内容。 另一种方法是分支Collective.xdv以修改其“替代主题”,因此它将使用URL选择主题。 我们可能还错过了什么? 谢谢!解决方法
您应该考虑迁移到最新的Plone 4.1版本。使用新的闪亮的
plone.app.theming
(仅适用于Plone> 4.1),您可以在重氮(以前的xdv)规则文件中使用theme parameters
(请查阅此处的文档),例如$host
变量(或您可能希望为用例设置的任何自定义参数-可以通过plone.app.theming控制面板进行配置)。如果您坚持使用Plone3.x/collective.xdv
,那么最好的选择是在Web服务器中设置标头,例如(以Nginx为例)。
location / {
...
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-XDV \"true\";
proxy_set_header X-Subsite \"sub-a\";
}
并从请求中访问它们。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。