我添加了OmniFaces来使用CombinedResourceHandler
。但是现在PrimeFaces Extensions <pe:ckEditor>
不再工作了。
是否有解决这个问题的方法?
不幸的是,这是一个由PrimeFaces Extensions加载和管理其JS资源的方式引起的已知问题。这个问题在旧的Google Code主机上已经报告过了,并且在当前的OmniFaces已知问题wiki中提到如下:
PrimeFaces Extensions <=0.7.1-4.0.0(可能还有未来的版本)
PrimeFaces Extensions JS资源
primefaces-extensions.js
与CombinedResourceHandler
不兼容。在加载过程中,它试图从自己的<script>
元素中找出版本,以便动态加载额外的CSS/JS资源。然而,这是不存在的,并且由于JS错误而失败,这反过来导致动态加载额外的CSS/JS资源(例如CKEditor)失败。您最好的选择是通过向
web.xml
添加以下条目来排除primefaces-extensions.js
的组合,告诉CombinedResourceHandler
不要组合PrimeFaces Extensions主脚本文件:<context-param> <param-name>org.omnifaces.COMBINED_RESOURCE_HANDLER_EXCLUDED_RESOURCES</param-name> <param-value>primefaces-extensions:primefaces-extensions.js</param-value> </context-param>
如果您使用的是OmniFaces 2.2或更新版本,那么您可以使用通配符
*
作为名称:<context-param> <param-name>org.omnifaces.COMBINED_RESOURCE_HANDLER_EXCLUDED_RESOURCES</param-name> <param-value>primefaces-extensions:*</param-value> </context-param>
如果你在 3.0.0版本之前使用PrimeFaces Extensions ,那么你还需要确保PrimeFaces Extensions自己的资源处理程序在
faces-config.xml
CombinedResourceHandler
之后显式声明:<application> <resource-handler>org.omnifaces.resourcehandler.CombinedResourceHandler</resource-handler> <resource-handler>org.primefaces.extensions.application.PrimeFacesExtensionsResourceHandler</resource-handler> </application>
此问题在PrimeFaces Extensions 6.2.8或更高版本中修复。
https://github.com/primefaces-extensions/primefaces-extensions.github.com/issues/601