据我所知,Rails3可以通过在文件名的末尾添加“?ID”字符串来“优化”缓存图像,javascripts和样式文档,例如: /stylesheets/normalize.css?1310531409。
但是,如果我使用firebug来检查我的页面加载,则出现以下内容:
我在Heroku上使用RoR3,在Cedar Stack上工作。
如何操作发送的images / stylesheets / javacripts的到期时间?目前,他们似乎在他们被发送的那一刻到期,这是一种无意义的。我在Heroku上遇到困难,在Cedar Stack上操作。
非常感谢。
答案 0 :(得分:3)
我建议您使用Jammit,更具体地说是jammit-s3 gem。这将允许您将所有资源推送到s3,并且链接的gem具有s3缓存控制设置。与rails的asset_host配置结合使用,您可以拥有assets.yourdomain.com subdomain,这可能有助于页面加载时间并减少段塞大小。
答案 1 :(得分:2)
资产ID rails添加不是强制缓存,而是缓存破坏者。数字(默认情况下)是文件的最后修改日期。如果更新文件,则数字会更改,从而强制浏览器获取新版本。这并不意味着如果数字相同,浏览器也不会尝试获取它。
在服务器的域中设置到期时间更多(可能是apache或nginx)。您可以将它们配置为具有不同的缓存控制设置 - 快速谷歌可以为您提供大量有关如何进行操作的提示。