我想优化我的应用程序在Ruby on Rails,我意识到我的应用程序中的图片是加载最长的时间,但我也注意到另一个问题,这是谷歌浏览器没有缓存图像。谷歌浏览器没有缓存图像
我注意到这一点,因为在Google Developers Console中,您可以看到Google Chrome请求加载在真正加载图像之前取消的图像。
这可以在这里看到,首先我打开Google Developers Console,然后刷新页面,在第一个请求中可以看到那些图像,但它们会立即取消。
之后,你可以看到,实际加载的图像的请求。
我不明白为什么会出现这种情况,如果在响应头,你可以看到,Cache Control
设置为public
与max-age = 31536...
我把图像在我这样申请:
<div class="col-xs-3"><%= image_tag "#{@hero.id}/ability_1.png", class: "center-block"%></div>
并且图像被组织在文件夹中app/assets/images
有没有RoR的方法来解决这个问题?
编辑:现在测试我的应用程序(这是在Heroku上)在Windows中我注意到,其实谷歌浏览器有时缓存图像,但它偏偏喜欢时代的50%(当我在Ubuntu中开发它没有工作一次),而在Firefox第一次图像加载,但随后的时间我加载相同的看法,我甚至无法注意到重新加载,这是美丽的,为什么谷歌铬不是这样的?谷歌浏览器行为如此怪异是正常的吗?
+1对于304的清晰解释,但我不认为这真的解决了OP的基本问题:为什么Chrome会根据'Cache-Control'中的'max-age'设置完成条件GET请求'响应头? – eaj