编辑Liferay的速度模板不会显示或需要一段时间

时间:2012-01-29 05:00:02

标签: caching liferay browser-cache liferay-6 liferay-velocity

我正在编辑我的 portal_normal.vm (server / tomcat / webapps / mytheme-theme / templates)测试,如果我可以在该文件上写入并在我的浏览器上看到它。我尝试将测试评论“<! - test - >”只是为了看看我是否真的可以写在文件上。所以我刷新了文件,希望我能看到我添加的评论,但我们没有。所以我继续刷新(ctrl + r),\并查看源代码差不多20分钟。过了一会儿,当我尝试再次查看它时,它反映在我的源代码中。所以我认为它是由Liferay或我的浏览器缓存的。

所以我尝试调整评论添加版本(“<! - test v2 - >”),希望看到更改。我在另一个浏览器上检查了它,评论没有更新或包含我添加的版本。所以我认为Liferay对这个问题负有责任。

这是我的 portal-ext.properties 包含的内容:

auth.token.check.enabled=false

# Database settings
jdbc.default.jndi.name=jdbc/LiferayPool

#For removing captch
captcha.check.portal.create_account=false

session.enable.phishing.protection=false

default.regular.theme.id=my_site_WAR_my_theme

#Delete cookies while deleting session
session.enable.persistent.cookies=false

#redirecting null problem.
redirect.url.security.mode=mysite.com

journal.template.velocity.restricted.variables=

admin.email.from.name=Market.Travel Team
admin.email.from.address=admin@mysite.com

# Added because of the Error - No Hibernate Session bound to thread, and configuration does not allow creation of non-transactional one here
hibernate.current_session_context_class=thread

session.enable.url.with.session.id=false

和我的 portal-developer.properties

theme.css.fast.load=false
theme.images.fast.load=false

javascript.fast.load=true
javascript.log.enabled=true

layout.template.cache.enabled=false

browser.launcher.url=

combo.check.timestamp=true

freemarker.engine.cache.storage=soft:1
freemarker.engine.modification.check.interval=0

openoffice.cache.enabled=false

velocity.engine.resource.manager.cache.enabled=false

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

com.liferay.portal.servlet.filters.themepreview.ThemePreviewFilter=true

添加:当我尝试编辑css文件时,我可以快速看到更改。只需重新加载即可显示更改。我认为只是在我的速度模板中花了一些时间或者出现了问题。

Liferay版本: Liferay Portal Community Edition 6.0.6 CE

谢谢!

1 个答案:

答案 0 :(得分:1)

确实没有必要定义自己的portal-developer.properties。将-Dexternal-properties=portal-developer.properties添加到JAVA_OPTS中的tomcat/bin/setenv.(sh|bat) Liferay将使用它的默认开发者设置,这几乎与您提供的设置完全相同。但是,我不认为这有助于(或可能解决)您的问题。 More details here

如果您要更改正确的文件,开发人员属性允许您对模板进行实时更改。由于Liferay为部署的Web应用程序提供了默认context.xml,因此会在tomcat/temp/{id}-webapp-name中复制/缓存Web应用程序。这意味着如果您在webapp/mytheme中更改模板,那么如果它注意到更改,则可能需要tomcat一段时间来获取更改(这将取决于tomcat配置)。另一方面,如果您在temp/1-mytheme进行更改,它会立即显示。编辑临时文件夹中的文件可能并不理想,所以......

如何解决此问题(无特定订单)

  • 阻止Tomcat为您的主题使用临时目录。为您的主题创建一个context.xml文件。

    <Context cachingAllowed="false"/>

    此文件应放在您的META-INF文件夹中 主题。如果您正在使用Liferay自动部署功能 context.xml文件可能被破坏,herehere。如果这 在这种情况下,您需要找到最适合您的工作 需要,例如在部署主题后修改context.xml。

  • 如果您使用的是Liferay Plugin-SDK,则可以按照fast plugin development guide设置开发环境。