12

我正在为Liferay Portal开发一个portlet

我通过在 portal-developer.properties 文件中使用这些代码禁用了 CSS 和 JavaScript 缓存:

主题.css.fast.load=false
theme.images.fast.load=false
javascript.fast.load=false
javascript.log.enabled=true
layout.template.cache.enabled=false
last.modified.check=false
velocity.engine.resource.manager.cache.enabled=false
com.liferay.portal.servlet.filters.cache.CacheFilter=false
com.liferay.portal.servlet.filters.layoutcache.LayoutCacheFilter=false

但我不知道如何禁用 portlet 缓存。

当我更新 portlet 目录中的 view.jsp 文件时,我必须重新启动Tomcat才能看到更改。

4

7 回答 7

5

使用最新版本 Liferay 6.2,您可以打开开发模式。

使用 Liferay IDE 时

  1. 转到服务器视图并双击服务器

在此处输入图像描述

  1. 选择开发模式,保存配置,重启服务器

在此处输入图像描述

不使用 Liferay IDE 时

  1. 在 $LIFERAY_DIR/$TOMCAT_DIR/bin/ 中编辑 setenv.sh 或 setenv.bat(对于 Windows)
  2. 将 -Dexternal-properties=portal-developer.properties 添加到 CATALINA_OPTS

参考: https ://www.liferay.com/documentation/liferay-portal/6.2/development/-/ai/using-developer-mode-with-themes-liferay-portal-6-2-dev-guide-09- zh

于 2015-03-16T23:13:53.980 回答
1

One of the things that tends to screw up JSP reloading is a timezone difference which causes an effect like the one Olaf Kock describes. Usually you can spot this in the log files as it will say something like "XXX has been modified in the future".

Because of these screwed up timestamps the new file won't we correctly detected and used. This can be easily solved by changing the timezone in the setenv.bat/setenv.sh file of Tomcat to an appropriate value.

于 2012-01-30T10:31:49.207 回答
1

我遇到了一些时钟未对齐的问题:当您通过网络挂载编辑 jsp 并且您的计算机认为它是 10:00 而服务器认为它已经是 10:05 时,可能会发生这种情况:

  • 您在 10:01 更改 jsp
  • tomcat 看到它并编译 - 一切都按预期工作,但编译页面的时间戳为 10:06
  • 你在 10:03 再次更改 jsp
  • Tomcat 看到更改的时间戳并将其与已编译页面的时间戳进行比较:已编译的页面较新(时间戳),因此未完成编译并且页面不反映您的更新
  • 心灰意冷,重启tomcat,耗时2分钟
  • 您更正了页面中的另一个错误,现在它的时间戳为 10:07
  • Tomcat 把它捡起来,编译它……

另外,我相信要记住一些能够改变 jsp 翻译行为的“上下文”配置。您是否正在处理未更改的 liferay/tomcat 捆绑包?当您只在一台机器上工作时会发生同样的情况吗?当你拿一个新的包,解压缩并重试时,同样的事情会发生吗?

于 2009-12-17T19:07:31.513 回答
1

在 doView 方法中使用以下行:ABCUtil.clearCache() 并且也可以<expiration-cache>0</expiration-cache>在您的 portlet 部署描述符中使用。

于 2011-05-05T09:37:13.253 回答
1

我发现解决方案使用 MultiVMPoolUtil.clear();

于 2011-11-22T05:20:17.210 回答
0

为什么要重启tomcat。只需将您的 portlet 部署到部署目录中。这是最快的。如果您从 Eclipse IDE 运行 Liferay,我认为这些更改会自动获取。

于 2010-11-30T13:18:58.257 回答
0

我的问题是部署没有反映我对 javascript 源代码所做的更改。

创建文件名为:

portal-ext.properties

具体在目录中:

C:\liferay-portal-6.2-ce-ga4\jboss-7.1.1\standalone\deployments\ROOT.war\WEB-INF\classes\

有内容:

com.liferay.portal.servlet.filters.cache.CacheFilter=false

我遇到的其他问题:

Windows 文件系统无法在 tmp 目录中容纳长 JBoss 文件/路径命名的缺点。

部署是缓存我删除的文件

构建是缓存我删除的文件

我的 bat 文件中用于构建和部署的行:

rd /q /s \liferay-portal-6.2-ce-ga4\jboss-7.1.1\standalone\tmp\work\jboss.web\default-host\my-portlet
rd /q /s \liferay-portal-6.2-ce-ga4\jboss-7.1.1\standalone\deployments\my-portlet.war
rd /q /s \liferay-portal-6.2-ce-ga4\liferay-plugins-sdk-6.2\portlets\my-portlet\docroot\WEB-INF\classes
ant.bat
于 2016-02-04T15:48:33.127 回答