Jsf 如何对版本化资源使用omnifaces CDN资源处理程序?

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

如何对版本化资源使用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: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
之后初始化PrimeFaces
PrimeResourceHandler
时,会发生这种情况

如果您在
/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的错误?