如何使用具有版本化资源的omnifaces CDN资源处理程序



如何使用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,导致404 HTTP错误。

primefaces:jquery/jquery.js=//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js

result in:

//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js&v=5.0

系统:

Glassfish 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放在了一个JAR中,那么如果GlassFish在PrimeFaces JAR之前初始化了这个JAR,那么这种情况确实会发生。为了解决这个问题,您需要显式地声明JAR的/META-INF/faces-config.xml在PrimeFaces之后初始化,方法是将以下条目添加到JAR的/META-INF/faces-config.xml中:

<ordering>
    <after>
        <name>primefaces</name>
    </after>
</ordering>

或者,将CDNResourceHandler声明移动到webapp的/WEB-INF/faces-config.xml

相关内容

  • 没有找到相关文章

最新更新