首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Chrome不缓存css文件。缓存适用于..js/..png文件。

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

Stack Overflow用户
提问于 2017-09-13 07:14:46
回答 3查看 3K关注 0票数 7

我注意到CSS文件没有在Chrome浏览器上缓存。我的应用程序是由角-CLI和所有所需的缓存控制标头构建的,过期报头设置为5分钟:

代码语言:javascript
运行
复制
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. 显示自签名证书和使用HTTPS的资源有时不会被Chrome缓存,如果存在任何SSL错误。但在我的示例中,所有其他文件(如.js、.png文件)都是在同一个通道上操作并缓存的。
  2. Transfer-Encoding: chunked是否会导致在chrome上缓存方面的问题?不过,它在FireFox中运行得很好。
  3. gzip压缩不能很好地处理Chrome:https://github.com/expressjs/compression/issues/64

有什么建议吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-09-27 05:16:33

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

由于我无法控制服务器配置来设置任何HTTP协议设置,所以我最终设置了响应头:Transfer-Encoding: identity。使用此响应头,http服务器不会进一步修改报头,也会添加Content-Length报头。在响应Content-Length头时,给Chrome一个可以缓存资源文件的清晰图片。

票数 4
EN

Stack Overflow用户

发布于 2017-09-22 20:05:45

我在一个网站上有同样的问题,但是将同一个web应用程序部署到另一个网站(在同一个IIS上),我会缓存所有的东西。回收应用程序池没有帮助。

只有在停止并启动IIS之后,两个网站现在都在Chrome中缓存CSS和JS文件。但你可以试一试。

票数 0
EN

Stack Overflow用户

发布于 2020-10-27 21:05:44

不确定这是否是您的情况,但是,我也遇到了同样的问题,当我开始为域使用适当的SSL证书时,问题就消失了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46191150

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档