在非根上下文中运行的Liferay中部署主题和portlet

时间:2012-10-31 07:14:45

标签: liferay

我们的Liferay Server是在非root上下文中设置的。门户网站上下文设置为 - portal.ctx = / lportal

因此,我们开发的主题不起作用。图像css未加载到非根上下文中。 此外,portlet具有的自定义css也没有加载。

有关如何解决此问题的任何线索。

此致 蒂娜

2 个答案:

答案 0 :(得分:2)

我们遇到了同样的问题,我们通过使用应用服务器的自定义部署描述符来解决它。

我们使用的是WebLogic,因此我们在主题中添加了一个weblogic.xml文件,其中context-root指令指定了非根上下文:

<?xml version="1.0"?>
<weblogic-web-app xmlns="http://www.bea.com/ns/weblogic/weblogic-web-app"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.bea.com/ns/weblogic/weblogic-web-app http://www.bea.com/ns/weblogic/weblogic-web-app/1.0/weblogic-web-app.xsd">
    <context-root>/foo/your-theme</context-root>
</weblogic-web-app>

使用Tomcat或JBoss执行此操作的说明应该非常相似。

然后你还必须在Liferay主题描述符中指定虚拟路径(liferay-look-and-feel.xml

<?xml version="1.0"?>
<!DOCTYPE look-and-feel PUBLIC "-//Liferay//DTD Look and Feel 6.0.0//EN" "http://www.liferay.com/dtd/liferay-look-and-feel_6_0_0.dtd">

<look-and-feel>
    <compatibility>
        <version>6.1.10+</version>
    </compatibility>
    <theme id="foo-theme" name="Foo Theme">
        <virtual-path>/foo/your-theme</virtual-path>
    </theme>
</look-and-feel>

重新部署主题后,指向CSS,javascript等的链接在/ foo / your-theme下工作正常。

答案 1 :(得分:0)

请注意,主题始终部署为自己的Web上下文 - 独立于Liferay。因此,当Liferay部署在http://www.example.com/lportal时,您的主题部署在http://www.example.com/my-theme,并且应该从那里引用图像。

如果Apache正在生成您的404错误,请确保它将请求转发给您的应用服务器。通常,如果您将mod_jk或mod_proxy或类似配置为转发/ lportal到Liferay,您还需要转发/ my-theme。

如果这没有帮助,请提供更多信息,例如不起作用的版本和示例css,包括它生成的内容。