Chrome不会缓存images/js/css

Rog*_*ger 59 caching google-chrome http-headers

当Chrome加载我的网站时,它会在显示文件之前检查服务器是否有更新版本的文件.(Images/Javascript/CSS)它从服务器获得304,因为我从不编辑外部javascript,css或图像.

我想要它做的是显示图像,甚至没有检查服务器.

以下是标题:

Connection:keep-alive    
Date:Tue, 03 Aug 2010 21:39:32 GMT    
ETag:"2792c73-b1-48cd0909d96ed"    
Expires:Thu, 02 Sep 2010 21:39:32 GMT    
Server:Apache/Nginx/Varnish
Run Code Online (Sandbox Code Playgroud)

如何让它不检查服务器?

Jac*_*all 85

您的请求标题是什么样的?

如果您在位置栏中按Enter, Chrome会在请求的Cache-Control标头上设置max-age:0 .如果您使用超链接访问您的页面,它应该按预期使用缓存.

  • 对于页面刷新,请求标头也设置为"max-age:0",这是有道理的.使用链接测试.. (3认同)
  • 一个).除了使用位置栏之外,如果您点击**refresh**,Chrome也会设置max-age:0.B)这两种行为在Firefox中也是如此.我不能和其他浏览器说话. (2认同)

Sab*_*ett 81

也让我感觉到的是...我在开发人员工具中检查了"禁用缓存".去搞清楚.

  • 我只是把手伸向空中,要求上帝惩罚我,因为我的愚蠢.还禁用缓存... (6认同)
  • 这有助于我解决同样的问题.如果您遇到困难,请在开发人员工具中单击右下方的齿轮图标. (4认同)
  • 并且认为我即将编写一个图像服务页面,只是为了强制执行缓存控制.谢谢!! (2认同)
  • _my_键盘和椅子之间存在问题. (2认同)
  • 哦。我的 神。哇。哇 一百万感谢你,谢谢你! (2认同)

tus*_*ath 57

哇!很长一段时间我都面临同样的问题.

我会告诉你为什么你要面对这个问题.你的标题很好.由于您尝试刷新页面的方式,您会收到304.主要有三种方式 -

  1. 在地址栏中按Enter键.您将观察到chrome首先从缓存中读取文件,而根本不会访问服务器.

  2. 按f5,这将验证文件是否已过时(可能是您刷新的方式)

  3. 按Ctrl + f5,这是无条件重新加载所有静态资源.

基本上 - 你应该按地址栏中的返回键.让我知道这个是否奏效.

  • 按Enter键仍然重新加载地址框.在新的或相同的选项卡中复制粘贴URL,然后按Enter键不会. (2认同)

Van*_*uan 29

对我来说,这是自签名证书:

https://code.google.com/p/chromium/issues/detail?id=110649

在上面的链接中,Chromium Developer标记了错误:#WontFix因为规则是:"证书的任何错误都意味着页面不会被缓存."

因此,Chrome不会从具有自签名证书的服务器缓存资源.

  • 我遇到了同样的问题。有什么解决办法吗? (2认同)

Rah*_*hul 5

如果您希望 Chrome 缓存您的 JS/CSS 文件 - 服务器将需要设置一个“Cache-Control”标头。它应该看起来像:

Cache-Control:max-age=86400(如果要缓存一天的资源)。