【问题标题】:why does rails caching check the URL on every page request?为什么rails缓存检查每个页面请求的URL?
【发布时间】:2012-06-12 22:15:35
【问题描述】:

我目前正在使用 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?"

(两个单独的请求)

我只使用片段缓存(...)

使用页面缓存或动作缓存。

那么,为什么 rails 会查看这些键?我找不到设置这些键的痕迹,而且我已经验证它们是 nil。

【问题讨论】:

    标签: ruby-on-rails caching redis


    【解决方案1】:

    查看:

    gems/activesupport-3.2.5/lib/active_support/cache.rb
    

    在您的 ruby​​ 目录中(如果您不知道它在哪里,并且在 UNIX/Mac 上,您可以在命令行上键入 which ruby 以找到 bin 目录,然后从那里向上。)

    在那里抛出一个断点并调试它以查看调用堆栈。该日志来自ActiveSupport::Cache::Store#log中的第526行

    当我调试它时,我发现它与 Metal 相关,它正在寻找页面的完全缓存版本。它看起来很无害,如果您实际上没有进行页面缓存,那么它可能不会发生任何坏事。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-20
      • 1970-01-01
      • 2023-04-07
      • 2011-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多