【发布时间】:2018-11-12 15:29:59
【问题描述】:
我正在使用 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 Faces 和 JSF。您应该升级到可以在liferayfaces.org 上找到的适当版本以避免安全漏洞。
-
yunandtidus 已经正确识别出 Liferay 6.2 的问题和解决方案,但人们应该意识到 Liferay 7.0+ 也可能出现类似问题:FACES-3175。我们已经在 Bridge Ext 5.0.3 中修复了这个问题,所以升级到那个版本应该可以解决这个问题。
标签: jsf primefaces liferay jsf-2.2