0

我遇到了简单缓存的问题(ruby 1.9.2,rails 3.1.3,开发环境):

开发.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

任何想法为什么?我的配置有问题吗?

4

2 回答 2

0

您的控制器名称和前导斜杠错误。尝试以下操作:

def expire_home
  expire_page(:controller => 'home', :action => 'index')
end
于 2012-02-29T18:03:25.543 回答
0

expire_page 期望路由的路径,例如,您可以执行缓存页面中的根 url

expire_page "/"

此外,要让您的 Web 服务器查找正确的位置,您需要在 apache 或 nginx 中配置重写规则以查找缓存目录。

于 2012-02-29T19:02:40.603 回答