Jsf 如何对版本化资源使用omnifaces CDN资源处理程序?
如何对版本化资源使用omnifaces CDNResourceHandler 原始url:Jsf 如何对版本化资源使用omnifaces CDN资源处理程序?,jsf,omnifaces,Jsf,Omnifaces,如何对版本化资源使用omnifaces CDNResourceHandler 原始url: javax.faces.resource/jquery/jquery.js.xhtml?ln=primefaces&v=5.0 所需url: //ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js 如何将其映射到特定url,而忽略版本查询参数 映射: 使用以下映射将版本查询参数附加到最终url,从而导致404HTTP错误 primefaces
javax.faces.resource/jquery/jquery.js.xhtml?ln=primefaces&v=5.0
所需url:
//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js
如何将其映射到特定url,而忽略版本查询参数
映射:
使用以下映射将版本查询参数附加到最终url,从而导致404HTTP错误
primefaces:jquery/jquery.js=//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js
结果为:
//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js&v=5.0
系统:
玻璃鱼4莫哈拉2.24
Primefaces 5.0
重写2.11我复制了它。当在OmniFaces
CDNResourceHandler
之后初始化PrimeFacesPrimeResourceHandler
时,会发生这种情况
如果您在/WEB-INF/faces config.xml
中声明了CDNResourceHandler
,那么这很出乎意料,可能是GlassFish4中的一个bug
但是,如果您在一个JAR的/META-INF/faces config.xml
中声明了CDNResourceHandler
,然后将其放置在/WEB-INF/lib
中,那么如果GlassFish在PrimeFaces JAR之前初始化该JAR,则确实会发生这种情况。为了解决这个问题,您需要通过在JAR的/META-INF/faces config.xml
中添加以下条目,显式声明JAR的/META-INF/faces config.xml
将在PrimeFaces之后初始化:
<ordering>
<after>
<name>primefaces</name>
</after>
</ordering>
素面
或者,将
CDNResourceHandler
声明移动到webapp的/WEB-INF/faces config.xml
,看起来PrimeFaces正在这样做。稍后将进行调查。感谢您的帮助:)抱歉,我无法使用PrimeFaces 5.0复制它,该软件作为“社区下载”提供。你使用的是哪个PrimeFaces 5.0版本?我使用的是社区下载的5.0版本。我也在使用“重写自”。如果这可能是一个问题,明天将检查它。删除重写无效。版本查询参数将附加到最终url。编辑了包含更多系统信息的问题。我在共享jar的/META-INF/faces config.xml
中声明了CDNResourceHandler
。这就是问题所在。在共享/META-INF/faces config.xml
中定义PrimeResourceHandler
之前的CDNResourceHandler
,并不能解决我的问题。解决方案是在主应用程序中声明CDNResourceHandler
。无论如何,无需声明PrimeResourceHandler
。如果你编辑你的答案,我会把它标记为正确。你认为这是GF4的错误?