我对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。我尝试过我所知道的一切,包括清除浏览器缓存。有什么想法吗?
答案 0 :(得分:1)
听起来您正在直接更新网络服务器上的文件(" ftp主题文件夹")而不是正确更改它,例如在开发环境中,建立一个新的主题。
Liferay缩小CSS(和javascript),将所有CSS文件连接成一个并消除空白。还有SASS处理。所有这些都是缓存的,因此,如果不重新部署新主题,Liferay将无法检测到您的更改。
使用" raw"您的主题的开发版本,在那里(在_diffs文件夹中)进行更改并构建更新的主题插件。将其部署到Liferay,将会收到更改。
答案 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=false
和javascript.fast.load=false
。
请确保根据您对_diffs文件夹所做的更改并将这些更改部署到Liferay节点,从IDE / Liferay SDK构建。可以通过将theme.war文件推送到Liferay / deploy目录来完成热部署。如果在负载均衡器后面的应用程序服务器上使用的更多,请确保将更改部署到群集的所有节点。
您可能需要停止Liferay,然后清理应用程序服务器的/ temp和/ work文件夹。这进一步确保了一些预先缓存的文件没有呈现给客户端。
启用CDN?应用程序层前面是否有Varnish(或其他)缓存机制? - 您是否正在使用Liferay CDN功能(Liferay Portal设置主屏幕)来缓存.js,.css,图像和其他文件,以减轻Liferay的压力?禁用CDN功能或查看您的缓存方法,以确保您的最新文件被查看'作为要缓存的新版本。有些人在Liferay面前设置了www层,并将他们的主题(和其他)文件复制到由它提供的www层。如果这是您的架构,则需要确保新主题文件的副本也会复制到www层。
清理您正在测试的任何浏览器的缓存,或使用"私密浏览"或"隐姓埋名"窗口,以确保您不会从浏览器缓存中加载任何内容。
答案 2 :(得分:0)
将以下属性添加到您的JAVA_OPTS并检查?
JAVA_OPTS="-Dexternal-properties=portal-developer.properties"