rails: actionpack-page_caching(页面缓存-rails4已经废弃)
一个已经从 rails core 移除的功能,但有些场景适合使用
01 要开启 rails 的配置(默认是开启的)
配置: 全局配置,配置文件
config/application.rb
- production: 默认是开启的
- development:
bin/rails dev:cache才会开启
config.action_controller.perform_caching = true02 添加 Gem
在你的 Rails 应用的 Gemfile 中添加:
gem 'actionpack-page_caching'然后运行 bundle install 安装它。
03 生成控制器
使用 Rails 命令生成一个控制器,比如 PagesController:
rails generate controller Pages show这将生成一个控制器文件 app/controllers/pages_controller.rb 和相应的视图文件 app/views/pages/show.html.erb。
04 配置页面缓存
在生成的控制器中,你可以设置页面缓存。例如,在 PagesController 中:
class PagesController < ApplicationController
caches_page :show
def show
# 你的业务逻辑,比如查找模型
end
end05 创建视图
在 app/views/pages/show.html.erb 中添加你想要展示的内容。
06 配置路由
在 config/routes.rb 中添加相应的路由:
Rails.application.routes.draw do
get 'pages/show', to: 'pages#show'
end07 运行应用
启动你的 Rails 服务器并访问 /pages/show。第一次请求将会生成页面并将其缓存。后续请求将直接从缓存中提供该页面。
缓存位置:默认情况下,缓存文件会存储在 public 目录下,具体可以通过配置 config.action_controller.page_cache_directory 来更改。
清除缓存:可以使用 expire_page 方法来清除缓存。例如,在某个特定操作后,使用 expire_page 来确保缓存被更新。
通过这些步骤,你可以在 Rails 中使用 actionpack-page_caching Gem 来实现页面缓存,虽然这并不是 Rails 官方支持的功能,但在特定情况下仍然可以提升性能。
08 自定义配置目录
如果你想自定义这个路径,可以在 config/application.rb 或相关的环境配置文件中设置:
config.action_controller.page_cache_directory = Rails.root.join('custom_cache_directory')这将会把缓存的页面存储到 custom_cache_directory 下。