Кэширование: неправильные пути и страницы не просрочены - PullRequest
0 голосов
/ 29 февраля 2012

У меня проблема с простым кэшированием (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'

sweeper:

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

Есть идеи почему?Что-то не так с моей конфигурацией?

Ответы [ 2 ]

0 голосов
/ 29 февраля 2012

expire_page ожидает путь к маршруту, поэтому, например, корневой URL-адрес на странице кэшей вы можете сделать

expire_page "/"

Кроме того, чтобы ваш веб-сервер смотрел в нужное место, вам нужно настроить правило перезаписи в apache или nginx для просмотра в каталоге кэша.

0 голосов
/ 29 февраля 2012

У вас неправильное имя контроллера и косая черта. Попробуйте следующее:

def expire_home
  expire_page(:controller => 'home', :action => 'index')
end
...