Nil*_*esh 5 css google-chrome http-caching
我观察到 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
Run Code Online (Sandbox Code Playgroud)
使用相同响应头设置的 JS 文件按预期缓存。.css 文件也缓存在 Firefox Mozilla 中。我搜索了帖子,几乎没有帖子建议是:
如果出现任何 SSL 错误,Chrome 有时不会缓存提供自签名证书和使用 HTTPS 的资源。但就我而言,所有其他文件(如 .js、.png 文件)都在同一频道上运行并被缓存。
将Transfer-Encoding: chunked导致在缓存上镀铬的任何问题?不过它在 FireFox 中运行良好。
gzip 压缩不适用于 Chrome:https : //github.com/expressjs/compression/issues/64
任何指示/建议?
Chrome 似乎不会缓存具有Transfer-Encoding:chunked响应标头的资源文件。即使资源文件很小,也会设置此响应标头。我认为标头是根据 http 服务器配置自动设置的。此配置可以基于文件的大小等。
由于我无法控制服务器配置来设置任何 HTTP 协议设置,因此我最终设置了响应标头:Transfer-Encoding: identity。使用此响应标头,http 服务器不会进一步修改标头并添加Content-Length标头。通过Content-Length响应头,Chrome 可以清楚地了解资源文件可以被缓存。
| 归档时间: |
|
| 查看次数: |
2661 次 |
| 最近记录: |