高级缓存实现指南
1. 背景与需求
网站运营良好,读者数量持续增长,页面缓存发挥了重要作用。然而,部分读者抱怨广告过多,同时表示愿意付费支持网站。因此,计划推出付费订阅服务,让付费会员可以访问无广告版本的网站。但由于需要引入用户认证,页面缓存不再适用,需采用新的缓存方案。
2. 行动缓存(Action Caching)
2.1 行动缓存的优势
与页面缓存相比,行动缓存有两个显著优势:
1. 可控性更强 :Rails 完全控制缓存过程,可决定是否使用缓存页面,而页面缓存仅存储静态 HTML 文件,由 Web 服务器负责查找和使用。
2. 可添加过滤器 :在请求处理过程中可添加前置、后置或环绕过滤器,便于实现用户认证,同时仍能利用页面缓存。不过,行动缓存速度比页面缓存慢。
2.2 实现行动缓存
2.2.1 创建会员控制器
使用以下命令创建会员控制器:
ruby script/generate controller Members
该命令会创建相关的控制器、视图、测试和辅助文件。
2.2.2 配置无广告布局
在 /app/views/layouts 目录下创建 adfree.rhtml 文件,内容如下:
超级会员免费看
订阅专栏 解锁全文
1273

被折叠的 条评论
为什么被折叠?



