Search code examples
jsfjsf-2.2myfacesomnifacescombinedresourcehandler

CombinedResourceHandler excluded resources doesn't recognize resources with query string


I have a couple of CSS files that I don't want to combine, but I also want to bust cache for those resources, so I declared them with:

<h:outputStylesheet name="css/styles.css?version=#{startup.time}" />

It was working fine until I added the CombineResourceHandler. Now the new handler does not recognize the name of the resource, and I cannot use a wildcard to exclude those resources, something like:

<context-param>
    <param-name>org.omnifaces.COMBINED_RESOURCE_HANDLER_EXCLUDED_RESOURCES</param-name>
    <param-value>css/styles.css*</param-value>
</context-param>

If I remove the version parameter I have to do versioning of those files, which is something I would like to avoid.

Any ideas on how to implement this the easiest way?


Solution

  • OmniFaces identifies resources by the internal ResourceIdentifier class. It didn't take into account any query strings, path parameters nor path fragments. As per this commit, this has been fixed. The fix is available in today's latest 2.2-SNAPSHOT.

    Support for wildcard pattern in excluded (and suppressed) resources context param would be a good candidate for a feature request.