title: Google Chrome Audit says "The following resources are explicitly non-cacheable" on JSF resources from library
body: <p>I used Chrome's auditing feature to try to find some performance bottlenecks in my web site.  I found a lot of reports of non-cacheable resources.  </p>
  
  <p>I did a dry run with a single-page containing a stylesheet in a library and found the same thing:</p>
  
  <pre><code>&lt;html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://xmlns.jcp.org/jsf/html" &gt;
      &lt;h:head&gt;
          &lt;h:outputStylesheet library="default" name="style.css"/&gt; 
      &lt;/h:head&gt;
      &lt;h:body&gt;
          &lt;div&gt;&lt;h:outputText value="test"/&gt;&lt;/div&gt;
      &lt;/h:body&gt;
  &lt;/html&gt;
  </code></pre>
  
  <p>Here's the audit log entry:</p>
  
  <pre><code>The following resources are explicitly non-cacheable. Consider making them cacheable if possible:
      style.css.jsf
  </code></pre>
  
  <p>The interesting thing is, if I remove it from the library, this message goes away.  So, it looks like there is a problem with caching resources in libraries.</p>
  
  <p>Is there a way to fix this?</p>
  
  <p>EDIT: According to one of the comments in this answer, perhaps CSS is not cached if a normal refresh is performed on the page:  <a href="https://stackoverflow.com/questions/18389842/set-http-headers-properly-to-force-caching-on-js-css-and-png-files">Set HTTP headers properly to force caching on JS, CSS and PNG files</a></p>
  
  <p>Can that be right?  Why can't a bookmark or typed in URL re-used the cached copy?</p>