我正为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才能看到更改。
答案 0 :(得分:5)
使用最新版本Liferay 6.2,您可以打开开发模式。
答案 1 :(得分:1)
我遇到了一些未对齐的时钟问题:当您通过网络安装编辑jsp并且您的计算机认为它是10:00而服务器相信时,它已经是10:05,这可能会发生:< / p>
另外,我相信会记住一些能够改变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