在开发模式下使用 Rails 3.2,我正在尝试测试一些简单的页面缓存。
pages_controller.rb
class PagesController < ActionController::Base
caches_page :index, :show
def index
@pages = Page.all
end
def show
@page = Page.find(params[:id])
end
end
发展.rb
config.action_controller.perform_caching = true
应用程序.rb
config.action_controller.page_cache_directory = File.join(Rails.root, 'public')
当我测试此设置时,它似乎像正常一样处理这些操作,并且页面缓存按预期写入。但是,随后的请求报告了以下两件让我感到困惑的事情:
- 它似乎错过了缓存,但是......
- 之后的请求似乎没有加载控制器、运行任何查询等,这让我相信它确实是从缓存中加载的。
这是第一次请求时日志输出的内容,然后是五次重新加载:
Started GET "/pages" for 127.0.0.1 at 2012-02-12 21:01:24 -1000
Processing by PagesController#index as HTML
Page Load (0.2ms) SELECT `pages`.* FROM `pages`
Rendered pages/index.html.erb (0.8ms)
Write page /Users/ckihe/Sites/experiment/public/pages.html (0.3ms)
Completed 200 OK in 3ms (Views: 1.9ms | ActiveRecord: 0.2ms)
cache: [GET /pages] miss
cache: [GET /pages] miss
cache: [GET /pages] miss
cache: [GET /pages] miss
cache: [GET /pages] miss
任何人都知道为什么缓存说它丢失了?