【问题标题】:Unique ID for Liferay themeLiferay 主题的唯一 ID
【发布时间】:2013-11-11 13:25:02
【问题描述】:

我们为 Liferay 创建的主题存在问题,在我看来,我们做错了什么,因为这似乎是一个非常愚蠢的问题。我们为所有插件使用 Maven 构建,因此有一个包含版本号的构建工件。当我们部署主题时,看起来 Liferay 根据主题的外观 XML 中指定的主题名称和 .war 文件的名称为主题创建了一个 ID。它看起来像xxxx_WAR_yyyy,这让我很困惑。当我们部署新版本的主题时,Liferay 将为它创建一个不同的 ID,因此所有使用“旧”主题的页面都不会更新到新版本。

必须有某种方法为主题指定一个永远不会更改的唯一 ID,无论主题已部署为什么文件。在我看来,文件名对 Liferay 没有任何意义。有没有办法做到这一点?显然,我们总是可以使用固定文件名部署文件,但不知何故,在我看来,我们做错了什么,缺少配置设置或其他东西。有没有办法在主题上强制使用唯一 ID?

【问题讨论】:

  • liferay 外观和感觉.xml 中的内部外观标签“
  • @LuckyBoy 是的,但是这里指定的主题 ID 只会是 xxxx_WAR_yyyy 中的 xxxx 部分,所以我无法完全控制主题 ID。有一部分是根据 .war 文件的名称生成的。

标签: liferay liferay-theme


【解决方案1】:

在你的主题项目的 pom.xml 中,给出这个

<artifactId>your-theme</artifactId>
<name>${project.artifactId}</name>

当您部署任何版本的主题时,这应该会创建一个相同名称的工件。

【讨论】:

  • 正如我在问题中提到的,我知道这是一个可能的解决方案。但我只是不喜欢部署文件的名称对 ID 有任何影响的想法,ID 实际上与每个页面一起存储在数据库中,并决定页面的显示方式。我想要一个解决方案,我可以自己指定 100% 的主题 ID。
【解决方案2】:

根据问题的第一段作为我认为的解决方案,如果一开始您将禁用旧版本主题(不仅从管理部分执行此操作,还从 webapps 中删除该特定主题目录),然后部署较新版本的主题。接下来为 liferay 管理部分的所有公共页面启用较新版本的主题。然后,如果您选中,则在所有页面中应用了较新版本的主题。如果你愿意,也可以这样试试。希望这会有所帮助。

【讨论】:

  • 我认为这行不通,因为我们对不同页面有不同的主题设置,所以更改公共页面的主题可能不会影响所有子页面。
  • 好的,那么您可以只为所需页面(即子页面)启用该主题。在 liferay 管理部分中,可以选择为不同页面选择单独的主题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-28
  • 2018-05-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多