rails: actionpack-page_caching(页面缓存-rails4已经废弃)
一个已经从 rails core 移除的功能,但有些场景适合使用
01 要开启 rails 的配置(默认是开启的)
配置: 全局配置,配置文件
config/application.rb
- production: 默认是开启的
- development:
bin/rails dev:cache
才会开启
config.action_controller.perform_caching = true
02 添加 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
end
05 创建视图
在 app/views/pages/show.html.erb
中添加你想要展示的内容。
06 配置路由
在 config/routes.rb
中添加相应的路由:
Rails.application.routes.draw do
get 'pages/show', to: 'pages#show'
end
07 运行应用
启动你的 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
下。