作者:李淑茹韦雯 | 来源:互联网 | 2023-05-17 13:29
GiventhatHerokuCedardoesnthavehttpcachingprovidedbyVarnishIwouldliketouseRack::Cach
Given that Heroku Cedar doesn't have http caching provided by Varnish I would like to use Rack::Cache
. I have been told that rails 3.1.1 have Rack::Cache
active by default, I just need to make sure to have in the configuration:
鉴于Heroku Cedar没有Varnish提供的http缓存,我想使用Rack :: Cache。我被告知rails 3.1.1默认情况下Rack :: Cache处于活动状态,我只需要确保在配置中:
config.action_controller.perform_caching = true
and I need to pick a cache store, for this experiment I'm using:
我需要选择一个缓存存储,对于我正在使用的这个实验:
config.cache_store = :memory_store
In the action of the page I want to cache I've added the following lines:
在我要缓存的页面的操作中,我添加了以下行:
response.header['Cache-Control'] = 'public, max-age=300'
response.header['Expires'] = CGI.rfc1123_date(Time.now + 300)
This code used to work fine with Varnish, the first request would return a 200 and the subsequent (for 5 mins) would return a 304
.
此代码用于与Varnish一起使用,第一个请求将返回200,随后(5分钟)将返回304。
This doesn't happen with Rails 3.1 and Heroku Cedar Stack. I do get those headers in the response but subsequent requests returns 200 instead of 304.
Rails 3.1和Heroku Cedar Stack不会发生这种情况。我确实在响应中获得了这些标头,但后续请求返回200而不是304。
What am I doing wrong? Thank you.
我究竟做错了什么?谢谢。
1 个解决方案