我遇到了简单缓存的问题(ruby 1.9.2,rails 3.1.3,开发环境):
development.rb:
config.action_controller.perform_caching = true
config.action_controller.cache_store = :file_store, 'tmp/cache'
config.action_controller.page_cache_directory = 'public/cache'
清扫器:
class CacheSweeper < ActionController::Caching::Sweeper
observe Article, Photo, Advertisement
def after_save(record)
expire_home
end
...
private
...
def expire_home
expire_page(:controller => '/homes', :action => 'index')
end
end
控制器:
class HomeController < ApplicationController
caches_page :index
cache_sweeper :cache_sweeper
def index
....
页面缓存在正确的目录中,操作会触发清除操作,但页面未过期,服务器正在尝试从默认位置获取缓存页面。
cache: [GET /] miss
任何想法为什么?我的配置有问题吗?
答案 0 :(得分:0)
您有错误的控制器名称和前导斜杠。请尝试以下方法:
def expire_home
expire_page(:controller => 'home', :action => 'index')
end
答案 1 :(得分:0)
expire_page需要路径的路径,例如你可以在缓存页面中的根URL
expire_page "/"
此外,要让您的Web服务器查找正确的位置,您需要在apache或nginx中配置重写规则以查看缓存目录。