我的rails 3.2应用程序试图从缓存中获取值(通过dalli进行memcached),我不希望它是缓存。它没有得到任何缓存命中,但我很困惑正在发生的事情。使用WEBrick在生产和开发时config.action_controller.perform_caching = true
会发生这种情况。
这是我在memcache详细输出中看到的片段:
<30 GET https://www.myrailsapp.com/?
>30 Writing an error: Not found
>30 Writing bin response:
>30 0x81 0x00 0x00 0x00
>30 0x00 0x00 0x00 0x01
>30 0x00 0x00 0x00 0x09
>30 0x00 0x00 0x00 0x00
>30 0x00 0x00 0x00 0x00
>30 0x00 0x00 0x00 0x00
<30 Read binary protocol data:
<30 0x80 0x00 0x00 0xd0
<30 0x00 0x00 0x00 0x00
<30 0x00 0x00 0x00 0xd0
<30 0x00 0x00 0x00 0x00
<30 0x00 0x00 0x00 0x00
<30 0x00 0x00 0x00 0x00
请注意,只有缓存GET,我没有看到任何缓存写入。
我看到类似的缓存GET尝试我的所有操作,其中大多数是JSON API调用。所有这些都导致缓存未命中。像这样,
<31 GET https://www.myrailsapp.com/api/somecall?param1=foo¶m2=bar
>31 Writing an error: Not found
我的app中没有指定任何caches_action
指令。
这是一个rails bug吗?
如果不是,我应该在哪里停止这些不必要的缓存GET?
感谢。
答案 0 :(得分:0)
根据Github线程中的cswilliams你发布了:
默认情况下启用rack_cache
似乎是个问题(因为在主分支中已更新)。
在您的应用程序或环境属性文件(例如config / environments / development.rb)中禁用它似乎可以解决此问题:
config.action_dispatch.rack_cache = false