2014-09-25 53 views
0

我对CSS比较陌生,对Liferay来说很新。我有一个我正在尝试构建的自定义主题。仅用于测试,我试图更改页面上portlet的标题文本颜色。在我的custom.css,我有liferay中没有显示主题变化

.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。我已经尝试了所有我知道的尝试,包括清除浏览器缓存。有什么想法吗?

+0

确保你正在修改_diff文件夹。 – Danish 2014-09-26 04:36:52

+0

可能的重复:http://stackoverflow.com/questions/26037640/liferay-when-i-build-the-war-my-changes-are-removed/26037992#26037992 – 2014-09-29 12:52:59

回答

1

这听起来像是你直接更新网络服务器上的文件(“ftp主题文件夹”),而不是正确地更改它,在开发环境中构建新的主题。

Liferay缩小了CSS(和javascript),将所有CSS文件连接成一个并消除空白。还有SASS处理。所有这些都被缓存了,所以很有可能Liferay不会在没有重新部署新主题的情况下检测到您的更改。

使用主题的“原始”开发版本,在那里进行更改(在_diffs文件夹中)并构建更新的主题插件。将其部署到Liferay中,并且将更改这些更改。

0

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

JAVA_OPTS="-Dexternal-properties=portal-developer.properties" 
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. 确保从IDE/Liferay SDK开始构建,基于对_diffs文件夹所做的更改并将这些更改部署到您的Liferay节点。热部署可以通过将theme.war文件推送到Liferay/deploy目录来完成。如果在负载平衡器后面使用的应用程序服务器上的应用程序服务器上的多于一个,请确保将更改部署到群集的所有节点上。

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

  4. 启用CDN?应用程序层前面是否有一个清漆(或其他)缓存机制? - 您是否正在使用Liferay CDN功能(Liferay Portal Settings主屏幕)来缓存.js,.css,图像和其他文件以缓解Liferay的压力?禁用CDN功能或查看您的缓存方法,以确保您的最新文件作为要缓存的新版本被“看到”。有些人在Liferay之前建立了一个www层,并将他们的主题(和其他)文件复制到它所提供的www层。如果这是您的体系结构,则需要确保将新主题文件的副本也复制到www层。

  5. 清理您正在测试的任何浏览器的缓存,或者使用“隐私浏览”或“隐身”窗口来确保您没有从浏览器缓存中加载任何内容。