Heroku:高效的图像,样式表和Javascripts缓存

时间:2011-07-13 04:41:06

标签: ruby-on-rails ruby-on-rails-3 web-applications heroku

据我所知,Rails3可以通过在文件名的末尾添加“?ID”字符串来“优化”缓存图像,javascripts和样式文档,例如: /stylesheets/normalize.css?1310531409。

但是,如果我使用firebug来检查我的页面加载,则出现以下内容: GET normalize.css

我在Heroku上使用RoR3,在Cedar Stack上工作。

如何操作发送的images / stylesheets / javacripts的到期时间?目前,他们似乎在他们被发送的那一刻到期,这是一种无意义的。我在Heroku上遇到困难,在Cedar Stack上操作。

非常感谢。

2 个答案:

答案 0 :(得分:3)

我建议您使用Jammit,更具体地说是jammit-s3 gem。这将允许您将所有资源推送到s3,并且链接的gem具有s3缓存控制设置。与rails的asset_host配置结合使用,您可以拥有assets.yourdomain.com subdomain,这可能有助于页面加载时间并减少段塞大小。

答案 1 :(得分:2)

资产ID rails添加不是强制缓存,而是缓存破坏者。数字(默认情况下)是文件的最后修改日期。如果更新文件,则数字会更改,从而强制浏览器获取新版本。这并不意味着如果数字相同,浏览器也不会尝试获取它。

在服务器的域中设置到期时间更多(可能是apache或nginx)。您可以将它们配置为具有不同的缓存控制设置 - 快速谷歌可以为您提供大量有关如何进行操作的提示。