我的 heroku 网站的根页面本质上是静态的,它在生成时在视图中有一些 ruby 代码,但是没有特定于单个用户的,所以我希望它由 Varnish 缓存并在不打我的测功机的情况下提供服务(注意应用程序中还有其他动态页面)。
Heroku 在这里看起来很简单。只需添加 response.headers['Cache-Control'] = 'public, max-age=300'
,它会在重新生成之前缓存 5 分钟。
Time.now
为了测试这一点,我进行了更改并将日期(在同一个浏览器上刷新工作正常,但我认为这是因为浏览器缓存,而不是 Heroku。
如果有任何帮助,当我执行 curl -i 来获取 HTTP 标头时,我会得到以下信息:
HTTP/1.1 200 OK^M
Server: nginx/0.7.67^M
Date: Thu, 29 Dec 2011 02:03:33 GMT^M
Content-Type: text/html; charset=utf-8^M
Connection: keep-alive^M
Cache-Control: public, max-age=300^M
X-Ua-Compatible: IE=Edge^M
Etag: "8a1b58f048968803980417a2914764d0"^M
X-Runtime: 0.038393^M
Content-Length: 8310^M
X-Varnish: 1040651825^M
Age: 0^M
Via: 1.1 varnish^M
基本上,我想确保它生成一次,然后缓存在 Varnish 中,我是否缺少任何选项,我是否需要配置更多内容?如果您对提供快速静态页面有其他建议,我也会喜欢这些建议。
谢谢!