2016-11-15 152 views
0

我已经设置Cache-Control = max-age = 315569520 &从现在开始过期至10年。浏览器没有从缓存中读取Amazon S3文件

仍浏览器正在从缓存中读取文件&向S3发出GET请求。作为响应304被接收,但是由于此,我的S3 GET计数正在增加。

请建议正确的方法来设置缓存文件S3

+0

'Expires'已被弃用和不必要的。尝试没有它...然后尝试一个更合理的值为'缓存控制:max-age = ...',如86400,只是为了看看是否浏览器丢弃的价值,好像它太大,不能认为正确。此外,提及浏览器和版本,以便其他人可以尝试复制您所看到的行为。 –

+0

迈克尔你的建议不起作用。我在最新的Chrome,Opera和Safari上试过这个。它在Firefox上完美运行。 Chrome和Cache中的Request header中的Cache-Control = 0是否与Safari中的No没有关系? – Lajpat

+0

验证这不是您的测试方法的人为因素。浏览器的行为是一个移动的目标,但[这个答案](http://stackoverflow.com/a/3934694/1695906)可能会提供一些洞察到浏览器何时可以发送缓存内容的If-Modified-Since请求(在浏览器会话期间第一次触摸?重新加载?),以及何时不会。根据我的估计,从根本上说,这不是一个特定于S3的问题,而是浏览器行为之一,并且从S3以外的服务器获得相同的响应时,浏览器行为也应该是相同的。 –

回答

0

当通过地址栏要求IMG的资源,铬&歌剧院发送缓存控制= 0的请求头& Safari浏览器发送缓存=否。由于此浏览器不会从缓存中拾取图像。

Firefox不会发送这样的头文件。

但是,当经由IMG SRC标签被请求相同的URL,所有浏览器尊重缓存控制&在他们的请求上述标题永远不会发送