主题变化没有出现在liferay中

时间:2014-09-25 16:28:19

标签: css liferay

我对CSS相对较新,对Liferay来说也是新手。我有一个我试图建立的自定义主题。仅仅是为了测试,我试图更改页面上portlet的标题文本颜色。在我的custom.css中,我有

.portlet-title {
   float: none;
   font-weight: bold;
   min-width: 50%;
   padding: 5px;
   text-shadow: 1px 1px #FFF;
   color: #800000;
}

我假设这是正确的类,因为在此类下的firefox检查器中添加颜色会更改颜色。但是,当我部署主题时,它将恢复为

.portlet-title {
      float: none;
      font-weight: bold;
      min-width: 50%;
      padding: 5px;
      text-shadow: 1px 1px #FFF;
}

如果我ftp到主题的文件夹,我所做的更改仍然在custom.css中。出于某种原因,当主题在Liferay中呈现时,它会在我进行更改之前恢复为css。我尝试过我所知道的一切,包括清除浏览器缓存。有什么想法吗?

3 个答案:

答案 0 :(得分:1)

听起来您正在直接更新网络服务器上的文件(" ftp主题文件夹")而不是正确更改它,例如在开发环境中,建立一个新的主题。

Liferay缩小CSS(和javascript),将所有CSS文件连接成一个并消除空白。还有SASS处理。所有这些都是缓存的,因此,如果不重新部署新主题,Liferay将无法检测到您的更改。

使用" raw"您的主题的开发版本,在那里(在_diffs文件夹中)进行更改并构建更新的主题插件。将其部署到Liferay,将会收到更改。

答案 1 :(得分:1)

可能是原因的事情+每种方法的补救措施:

  1. 确保开发人员属性正在使用中,fast.load.css和fast.load.js属性已在portal-ext.properties中使用: 例如。 - 在{tomcat} /bin/setenv.sh中: 如上所述-Dexternal-properties=portal-developer.properties,和 在portal-ext.properties中设置:theme.css.fast.load=falsejavascript.fast.load=false

  2. 请确保根据您对_diffs文件夹所做的更改并将这些更改部署到Liferay节点,从IDE / Liferay SDK构建。可以通过将theme.war文件推送到Liferay / deploy目录来完成热部署。如果在负载均衡器后面的应用程序服务器上使用的更多,请确保将更改部署到群集的所有节点。

  3. 您可能需要停止Liferay,然后清理应用程序服务器的/ temp和/ work文件夹。这进一步确保了一些预先缓存的文件没有呈现给客户端。

  4. 启用CDN?应用程序层前面是否有Varnish(或其他)缓存机制? - 您是否正在使用Liferay CDN功能(Liferay Portal设置主屏幕)来缓存.js,.css,图像和其他文件,以减轻Liferay的压力?禁用CDN功能或查看您的缓存方法,以确保您的最新文件被查看'作为要缓存的新版本。有些人在Liferay面前设置了www层,并将他们的主题(和其他)文件复制到由它提供的www层。如果这是您的架构,则需要确保新主题文件的副本也会复制到www层。

  5. 清理您正在测试的任何浏览器的缓存,或使用"私密浏览"或"隐姓埋名"窗口,以确保您不会从浏览器缓存中加载任何内容。

答案 2 :(得分:0)

将以下属性添加到您的JAVA_OPTS并检查?

JAVA_OPTS="-Dexternal-properties=portal-developer.properties"