如何禁用Liferay portlet缓存?

时间:2009-11-05 09:13:21

标签: liferay

我正为portlet开发Liferay Portal

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

theme.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才能看到更改。

7 个答案:

答案 0 :(得分:5)

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

使用Liferay IDE时

  1. 转到“服务器”视图,然后双击服务器
  2. enter image description here

    1. 选择开发模式,保存配置,然后重新启动服务器
    2. enter image description here

      不使用Liferay IDE时

      1. 在$ LIFERAY_DIR / $ TOMCAT_DIR / bin /
      2. 中修改setenv.sh或setenv.bat(适用于Windows)
      3. 将-Dexternal-properties = portal-developer.properties添加到CATALINA_OPTS
      4. <强>参考: https://www.liferay.com/documentation/liferay-portal/6.2/development/-/ai/using-developer-mode-with-themes-liferay-portal-6-2-dev-guide-09-en

答案 1 :(得分:1)

我遇到了一些未对齐的时钟问题:当您通过网络安装编辑jsp并且您的计算机认为它是10:00而服务器相信时,它已经是10:05,这可能会发生:< / p>

  • 您在10:01更改了jsp
  • tomcat看到它并编译 - 一切都按预期工作,但编译页面的时间戳为10:06
  • 您在10:03再次更改了jsp
  • Tomcat看到更改的时间戳并将其与编译页面的时间戳进行比较:编译的页面更新(时间戳),因此没有编译,页面也没有反映您的更新
  • 你感到沮丧,重启tomcat,需要2分钟
  • 您更正了页面中的其他错误,现在已加上时间戳10:07
  • Tomcat选择它,编译它......

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

答案 2 :(得分:1)

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

答案 3 :(得分:1)

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

答案 4 :(得分:1)

导致JSP重新加载的一个原因是时区差异导致像Olaf Kock所描述的那样的效果。通常你可以在日志文件中发现这一点,因为它会说“XXX已经被修改过了”。

由于这些搞砸了时间戳,我们无法正确检测和使用新文件。通过将Tomcat的setenv.bat / setenv.sh文件中的时区更改为适当的值,可以轻松解决此问题。

答案 5 :(得分:0)

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

答案 6 :(得分: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