OmniFaces CombinedResourceHandler 需要很长时间才能加载

OmniFaces CombinedResourceHandler takes long time to load

我将 OmniFaces 2.2 与 PrimeFaces 5.3 和 BootsFaces 0.8.1 一起使用。由于建议将 CombinedResourceHandler 与 BootsFaces 一起使用,因此我尝试按照 BootsFaces 说明首先使用:http://showcase.bootsfaces.net/integration/OmniFaces.jsf

<context-param>
    <param-name>org.omnifaces.COMBINED_RESOURCE_ACTIVATE_RESOURCE_CACHING</param-name>
    <param-value>true</param-value>
</context-param>
<context-param>
    <param-name>org.omnifaces.CACHE_SETTING_APPLICATION_MAX_CAPACITY</param-name>
    <param-value>30</param-value>
</context-param>
<context-param>
    <param-name>org.omnifaces.CACHE_SETTING_APPLICATION_TTL</param-name>
    <param-value>86400</param-value>
</context-param>

在我的应用程序中,我使用自己的 JS 库,并在 layout/template XHTML 的 <h:head> 中拥有 CSS 内容。

<h:outputStylesheet library="css" name="custom.css"/>
<h:outputScript library="scripts" name="js/custom_scripts.js" target="head"/>

CombinedResourceHandlerfaces-config 中启用。该应用程序处于 Production 模式,并且在每个页面上的每次重新加载时,页面加载都需要花费很多时间来下载组合的 css 和 js 文件,如您在附图中所见:

所以整个页面加载量是没有 CombinedResourceHandler 的两倍到三倍。我唯一能想象的就是我完全错误地使用它。但是我的失败在哪里呢?

这些上下文参数不正确。这些仅在您根据 BootsFaces own instructions.

修改 OmniFaces 2.0 时适用

从 OmniFaces 2.1 开始,该解决方案按照 issue 100 进行了集成,并且简化了代码和配置,因此仅需要以下上下文参数即可启用组合资源处理程序缓存:

<context-param>
    <param-name>org.omnifaces.COMBINED_RESOURCE_HANDLER_CACHE_TTL</param-name>
    <param-value>86400</param-value>
</context-param>

另请参阅 CombinedResourceHandler showcase 上的文档。