【发布时间】:2016-05-24 08:45:50
【问题描述】:
我正在尝试在 Ruby on Rails 中优化我的应用程序,我意识到我的应用程序中的图片加载时间最长,但我也注意到另一个问题,即 google chrome 不是缓存图像。
我注意到这一点是因为在 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 方法?
编辑:现在在 Windows 中测试我的应用程序(在 Heroku 中)我注意到实际上 Google Chrome 有时会缓存图像,但它发生的概率为 50%(当我在 Ubuntu 中开发它一次都没有工作),而在 Firefox 第一次加载图像时,但随后加载相同的视图我什至都没有注意到重新加载,这很漂亮,为什么谷歌 Chrome是不是这样?谷歌浏览器的行为如此怪异是正常的吗?
【问题讨论】:
标签: ruby-on-rails google-chrome caching assets