我添加OmniFaces使用CombinedResourceHandler
。但现在PrimeFaces Extensions <pe:ckEditor>
不再工作了。
这个问题有解决方法吗?
不幸的是,这是由PrimeFaces Extensions加载和管理其JS资源的方式引起的已知问题。这已经被报道为旧版Google Code主机上的问题,并且在当前的OmniFaces known issues wiki中提到如下:
PrimeFaces Extensions <= 0.7.1-4.0.0(可能还有未来的版本)
PrimeFaces Extensions JS资源
primefaces-extensions.js
与CombinedResourceHandler
不兼容。在加载期间,它会尝试从其自己的<script>
元素中计算出版本,以便动态加载其他CSS / JS资源。然而,这是不存在的并且尝试失败并且JS错误反过来导致动态加载额外的CSS / JS资源,例如, CKEditor失败。你最好的办法是通过在
primefaces-extensions.js
中添加以下条目来排除web.xml
的组合,告诉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,那么你还需要确保在
CombinedResourceHandler
中的faces-config.xml
之后显式声明了PrimeFaces Extensions自己的资源处理程序:<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