当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
如何让它不检查服务器?
答案 0 :(得分:84)
您的请求标题是什么样的?
Chrome会在请求的Cache-Control标头if you press Enter in the location bar上设置max-age:0。如果您使用超链接访问您的页面,它应该按预期使用缓存。
答案 1 :(得分:70)
也让我感觉到的是......我在开发者工具中检查了“禁用缓存”。去图。
答案 2 :(得分:56)
哇!我很长一段时间都面临同样的问题。
我会告诉你为什么你要面对这个问题。你的标题很好。由于您尝试刷新页面的方式,您会收到304。主要有三种方式 -
按地址栏中的Enter键。您将观察到chrome首先从缓存中读取文件,而根本不会访问服务器。
按f5,这将验证文件是否已过时(可能就是您的刷新方式)
按Ctrl + f5,这是无条件重新加载所有静态资源。
基本上 - 你应该按地址栏中的返回键。如果有效,请告诉我。
答案 3 :(得分:27)
对我来说,这是自签名证书:
https://code.google.com/p/chromium/issues/detail?id=110649
在上面的链接中,Chromium Developer标记了错误:#WontFix
,因为规则是:"证书的任何错误都意味着页面不会被缓存。"
因此,Chrome不会从具有自签名证书的服务器缓存资源。
答案 4 :(得分:4)
如果您希望Chrome缓存您的JS / CSS文件 - 服务器需要设置“Cache-Control”标头。它应该看起来像:
Cache-Control:max-age = 86400(如果你想缓存一天的资源)。
答案 5 :(得分:1)
我相信你在寻找
Cache-Control: immutable