根据子域对不同的微站点进行换肤

问题描述

| 克隆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\";
}
并从请求中访问它们。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...