Я работаю с Liferay 6.2 и JSF 2.2.12
У меня есть два пользовательских портлета (с использованием Primefaces). Мои портлеты импортируют ресурсы Javascript, используя <h:head />. Эти портлеты отображаются на одной странице.
<h:head />
В моей промежуточной среде primefaces.js включается один раз в отображаемое представление:
primefaces.js
<script src="https://example.com/group/my-site/url?p_p_id=portletone_WAR_portletone&...javax.faces.resource=primefaces.js...">
Почему я получаю два <script> в производственной среде:
<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)
jquery.js
Это связано с параллельным рендерингом Liferay. Чтобы отключить параллельный рендеринг, добавьте следующее свойство к portal-ext.properties
portal-ext.properties
layout.parallel.render.enable=false
Вся заслуга Нила Гриффина на форумах Liferay: https://community.liferay.com/fr/forums/-/message_boards/message/20947470#_com_liferay_message_boards_web_portlet_MBPortlet_message_36195975