Css 谷歌Chrome审计称;以下资源是显式不可缓存的“;从图书馆看JSF资源
我使用Chrome的审计功能试图在我的网站中找到一些性能瓶颈。我发现了很多关于不可缓存资源的报告 我在库中对包含样式表的单个页面进行了一次试运行,发现了相同的东西:Css 谷歌Chrome审计称;以下资源是显式不可缓存的“;从图书馆看JSF资源,css,jsf,google-chrome-devtools,http-caching,Css,Jsf,Google Chrome Devtools,Http Caching,我使用Chrome的审计功能试图在我的网站中找到一些性能瓶颈。我发现了很多关于不可缓存资源的报告 我在库中对包含样式表的单个页面进行了一次试运行,发现了相同的东西: <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://xmlns.jcp.org/jsf/html" > <h:head> <h:outputStylesheet library="default" name="
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html" >
<h:head>
<h:outputStylesheet library="default" name="style.css"/>
</h:head>
<h:body>
<div><h:outputText value="test"/></div>
</h:body>
</html>
有趣的是,如果我把它从库中移除,这个消息就会消失。因此,在库中缓存资源似乎有问题
有办法解决这个问题吗
编辑:根据此答案中的一条注释,如果在页面上执行正常刷新,可能不会缓存CSS:
这是对的吗?为什么书签或键入的URL不能重新使用缓存的副本?这是一个错误
library
属性将库值添加为查询字符串,另请参见Chrome Audit似乎会惩罚资源URL中的任何查询字符串,即使刷新期间的响应标题和实际浏览器行为完全有效。我刚刚在自己的Chrome上试过,我也确实看到了这个错误
如果您返回“网络”选项卡,则必须注意有效的过期
、ETag
和上次移动的
响应头(以及无缓存控制
),并且必须遵守以下浏览器行为:
- 对于空缓存中的新请求,或者通过Ctrl+F5硬加载页面时,这些资源上的HTTP状态必须为200
- 在导航到引用完全相同的资源的另一个页面时,或再次单击完全相同的(书签)链接时,或再次按浏览器地址栏中的Enter键时,您必须在“大小”列中看到一个灰显的HTTP状态200和“来自缓存”
- 通过F5或Ctrl+R重新加载页面时,您必须看到这些资源上的HTTP状态为304(浏览器将收到更小的响应-只有响应头,没有正文-并继续使用缓存版本)
尝试一个更合适的web性能测试工具。例如,伊斯洛。在我的例子中,它没有翻转资源URL中的查询字符串。完整地验证了这一点。解释得很好。非常感谢。
The following resources are explicitly non-cacheable. Consider making them cacheable if possible:
style.css.jsf