Liferay portlet 部署时间戳

Liferay portlet deploy timestamp

我需要在 jsp 页中包含一些 JavaScript:

<script type="text/javascript" src="<%=request.getContextPath()%>/newsletter/js/newsletter.js"></script>

当我部署新的 portlet 版本并更改此 JavaScript 文件时,一些用户会看到此文件的旧版本。

我看到 Liferay 将上次部署时间戳添加到 javascripts (...js?t=14573725543),如果我将此文件添加到 liferay-portlet.xml,我就可以做到。但是我不能用 newsletter.js 来做。有时我不需要加载这个文件。

是否可以手动添加这个自动时间戳?我在 $theme_timestamp.

的主题中做了类似的事情

Liferay 正在使用 com.liferay.portal.model.Portlet.getTimestamp() 生成 t= 之后的数字。您可以从 PortletContext 获取 (Liferay) portlet:

<%
LiferayPortletContext context = (LiferayPortletContext) portletConfig.getPortletContext();
long timestamp = context.getPortlet().getTimestamp();
%>
<script type="text/javascript" 
        src="<%=request.getContextPath()%>/newsletter/js/newsletter.js?t=<%=timestamp%>">
</script>