我目前正在使用 redis-store,但我很确定这是 Rails 所做的,而不是 redis-store 的。
在每个请求中,我在缓存日志中看到这样的项目:
1339188014.237987 (db 1) "get" "cache:http://www.domain.com/?"
1339188107.318145 (db 1) "get" "cache:https://www.domain.com/login?"
(两个单独的请求)
我只使用片段缓存(<% cache 'some_key' do %>...<% end %>)
我不使用页面缓存或操作缓存。
那么,为什么 Rails 会查看这些键?我找不到设置这些 key 的痕迹,并且我已验证它们为零。
最佳答案
查看:
gems/activesupport-3.2.5/lib/active_support/cache.rb
在您的 ruby 目录中(如果您不知道它在哪里并且在 UNIX/Mac 上,您可以在命令行中键入 which ruby
以找到 bin 目录,然后从那里向上.)
在那里打一个断点并调试它以查看调用堆栈。该日志来自 ActiveSupport::Cache::Store#log
当我调试它时,我发现它与 Metal 相关,它正在寻找页面的完全缓存版本。它看起来非常无害,如果您实际上没有进行页面缓存,那么它可能永远不会发生任何坏事。
关于ruby-on-rails - 为什么 Rails 缓存会检查每个页面请求的 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10955868/