Кэширование страниц в Rails

Кэширование страниц в Rails работает с помощью метода caches_page, который используется в контроллерах. Этот метод указывает Rails сохранить весь вывод запроса на диск. При последующих запросах сервер будет использовать кэшированный контент напрямую, без Rails. В результате, никаких записей в журнал Rails не будет, и фильтры контроллера не будут срабатывать. Это похоже на то, как обычные статические HTML-файлы из директории public вашего проекта обслуживаются веб-сервером.

class HomepageController < ApplicationController caches_page :index def index; end end

Метод caches_page :index указывает Rails сохранять весь вывод действия на диск. При последующих запросах к этому action, Rails будет отдавать кэшированный HTML-контент без повторного выполнения и без участия Rails в процессе обработки запроса.

Необходимые гемы

Поскольку кэширование страниц не является частью ядра Rails, потребуется добавить гем в проект:

gem 'actionpack-page_caching'

Кэширование страниц также требует соответствующей конфигурации в вашем приложении. Найдите в проекте файл config/environments/production.rb и поменяйте флаг perform_caching в значение true:

config.action_controller.perform_caching = true

Этот флаг активирует кэширование в продакшн.

1 комментарий

Интереснее было бы почитать почему его выпилили из Rails. И что в нём такого, чего нет в стандартных рельсах и почему его кому-то захотелось бы использовать.