Rails http缓存尝试写入tmp / cache。为什么?

时间:2013-04-09 22:51:54

标签: ruby-on-rails http

我的理解是在Rails 3中使用http缓存,我所要做的就是在动作中添加这样的东西

expires_in(10.seconds, :public => true)

但是当我这样做时,除了在浏览器中执行http缓存之外,它还会尝试写入tmp / cache(该操作的相同用户请求不会像预期的那样到达服务器)

这是为什么?如何阻止Rails写入缓存目录以进行http缓存?

PS:我正在使用nginx + passenger

2 个答案:

答案 0 :(得分:2)

写入/ tmp / cache的内容是Rack::Cache::FileStore,可通过config.cache_store进行配置;它是一个rails3本机代理缓存;
如果你想禁用它:

config.action_dispatch.rack_cache =  nil

答案 1 :(得分:0)

另一种解决方案是不使用:public => expires_in中的true设置。看来这个设置是Rack :: Cache将响应写入缓存的原因。如果您将其设置为private => true(默认值),这不会发生