我们的 Liferay 服务器设置在非根上下文中。门户上下文设置为 -portal.ctx=/lportal
因此,我们开发的主题不起作用。图像 css 未在非根上下文中加载。此外,portlet 具有的自定义 css 也没有加载。
有关如何解决此问题的任何线索。
问候,蒂娜
我们的 Liferay 服务器设置在非根上下文中。门户上下文设置为 -portal.ctx=/lportal
因此,我们开发的主题不起作用。图像 css 未在非根上下文中加载。此外,portlet 具有的自定义 css 也没有加载。
有关如何解决此问题的任何线索。
问候,蒂娜
我们遇到了同样的问题,我们通过使用应用程序服务器的自定义部署描述符解决了这个问题。
我们使用的是 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 下正常工作。
请注意,主题始终部署为自己的 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,包括它生成的内容。