Chrome 不缓存 css 文件。缓存适用于 .js/.png 文件。

2024-02-24

我观察到 CSS 文件没有在 Chrome 浏览器上缓存。我的应用程序是由 Angular-CLI 构建的,所有必需的缓存控制标头和 Expires 标头均设置为 5 分钟:

Accept-Ranges:bytes
Cache-Control:max-age=600
Content-Encoding:gzip
Content-Type:text/css
Date:Wed, 13 Sep 2017 05:11:17 GMT
ETag:W/"441246-1505278984000"
Expires:Wed, 13 Sep 2017 05:21:18 GMT
Last-Modified:Wed, 13 Sep 2017 05:03:04 GMT
Server:Apache-Coyote/1.1
Transfer-Encoding:chunked
Vary:Accept-Encoding

设置了相同响应头的 JS 文件会按预期缓存。 css 文件也缓存在 Firefox Mozilla 中。 我搜索了帖子,发现很少有帖子建议:

  1. 如果存在任何 SSL 错误,Chrome 有时不会缓存提供自签名证书并使用 HTTPS 的资源。但就我而言,所有其他文件(例如 .js、.png 文件)都在同一通道上操作并被缓存。

  2. The Transfer-Encoding: chunked在 chrome 上的缓存中造成任何问题吗?但它在 FireFox 中运行良好。

  3. gzip 压缩在 Chrome 上效果不佳:https://github.com/expressjs/compression/issues/64 https://github.com/expressjs/compression/issues/64

有什么指示/建议吗?


Chrome 似乎不会缓存资源文件(如果有)Transfer-Encoding:chunked响应头。即使资源文件很小,也会设置此响应标头。我认为标头是根据 http 服务器配置自动设置的。此配置可以基于文件的大小等。

由于我无法控制服务器配置来设置任何 HTTP 协议设置,因此我 最终设置响应头:Transfer-Encoding: identity。 使用此响应标头,http 服务器不会进一步修改标头并添加Content-Length标题也是如此。和Content-Lengthheader 响应,让 Chrome 清楚地了解资源文件可以被缓存。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Chrome 不缓存 css 文件。缓存适用于 .js/.png 文件。 的相关文章

随机推荐