我目前正在使用liferay 6.1。我想访问liferay-portlet.xml文件中的portal-ext.properties。有没有办法访问它?我想动态地从ext属性中替换版本。
的liferay-portlet.xml中
<header-portlet-css>/css/main.css?v={version}</header-portlet-css>
portal-ext.properties代码
version=3
答案 0 :(得分:2)
不可能开箱即用 - 如果你检查PortletLocalServiceImpl._readLiferayPortletXML
,你会看到:没有属性插值。
如果你检查PortalImpl.getStaticResourceURL
,你会看到:CSS文件的URI中的?
甚至会删除所有其他生成的参数(如上次修改的时间戳):
if (uri.indexOf(CharPool.QUESTION) != -1) {
return uri;
}
所以它从来没有打算在portlet的CSS URI中有任何查询参数。
如果您确实需要该属性,则可以在构建期间更改构建过程以插入版本属性。
或者您创建一个覆盖PortalImpl.getStaticResourceURL
的 Hook 或 Ext插件并为您进行插值。这是更复杂但更好的选择,因为它也可以添加Liferay特定参数。
但是,如果你只想增加一个版本标志,以确保在你改变某些东西时不缓存该文件:没有必要这样做。如果你没有添加问号,比如
<header-portlet-css>/css/main.css</header-portlet-css>
比Liferay会自动添加时间戳参数:
.../css/main.css?...&t=1234567
其中123456
是main.css
的修改时间。如果您在main.css
中添加了其他一些文件,那么您只需要触摸&#34;每次更改其他文件时都会main.css
。