Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Css 谷歌Chrome审计称;以下资源是显式不可缓存的“;从图书馆看JSF资源_Css_Jsf_Google Chrome Devtools_Http Caching - Fatal编程技术网

Css 谷歌Chrome审计称;以下资源是显式不可缓存的“;从图书馆看JSF资源

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="

我使用Chrome的审计功能试图在我的网站中找到一些性能瓶颈。我发现了很多关于不可缓存资源的报告

我在库中对包含样式表的单个页面进行了一次试运行,发现了相同的东西:

<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(浏览器将收到更小的响应-只有响应头,没有正文-并继续使用缓存版本)
如果这些资源真的像Chrome Audit所说的那样“显式不可缓存”,那么在每种情况下,您都会看到完整的HTTP 200响应

资源URL中的查询字符串通常用作缓存破坏技术。当在服务器端更新资源时,开发人员当然希望在客户端强制重新加载。一种方法是重命名资源路径/文件名,但另一种更常见的方法是更改查询字符串参数值(通常表示版本或时间戳)


尝试一个更合适的web性能测试工具。例如,伊斯洛。在我的例子中,它没有翻转资源URL中的查询字符串。

完整地验证了这一点。解释得很好。非常感谢。
The following resources are explicitly non-cacheable. Consider making them cacheable if possible:
    style.css.jsf