1

我们的 Liferay 服务器设置在非根上下文中。门户上下文设置为 -portal.ctx=/lportal

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

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

问候,蒂娜

4

2 回答 2

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 下正常工作。

于 2013-01-21T11:20:51.820 回答
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,包括它生成的内容。

于 2012-10-31T08:41:38.473 回答