Javascript 文件多次包含在 JSF / Liferay 6.2 中

Javascript file included multiple times with JSF / Liferay 6.2

我是 运行 Liferay 6.2 和 JSF 2.2.12

我有两个自定义 portlet(使用 Primefaces)。 我的 portlet 使用 <h:head /> 导入 Javascript 资源。 这些 portlet 显示在同一页面上。

在我的暂存环境中 primefaces.js 在渲染视图中包含一次:

<script src="https://example.com/group/my-site/url?p_p_id=portletone_WAR_portletone&...javax.faces.resource=primefaces.js...">

为什么我在生产环境中得到两个<script> :

<script src="https://example.com/group/my-site/url?p_p_id=portletone_WAR_portletone&...javax.faces.resource=primefaces.js...">
<script src="https://example.com/group/my-site/url?p_p_id=portlettwo_WAR_portlettwo&...javax.faces.resource=primefaces.js...">

(与 jquery.js 相同的观察结果)

这是由于 Liferay 并行渲染。为了禁用并行渲染,将以下 属性 添加到 portal-ext.properties

layout.parallel.render.enable=false

所有功劳都归功于 Liferay 论坛上的 Neil Griffin: https://community.liferay.com/fr/forums/-/message_boards/message/20947470#_com_liferay_message_boards_web_portlet_MBPortlet_message_36195975