@Override public void handleResourceRequest(FacesContext context) throws IOException { Resource resource = createResource(context); if (resource == null) { super.handleResourceRequest(context); return; } ExternalContext externalContext = context.getExternalContext(); if (!resource.userAgentNeedsUpdate(context)) { externalContext.setResponseStatus(SC_NOT_MODIFIED); return; } InputStream inputStream = resource.getInputStream(); if (inputStream == null) { externalContext.setResponseStatus(SC_NOT_FOUND); return; } externalContext.setResponseContentType(resource.getContentType()); for (Entry<String, String> header : resource.getResponseHeaders().entrySet()) { externalContext.setResponseHeader(header.getKey(), header.getValue()); } stream(inputStream, externalContext.getResponseOutputStream()); }