Rails缓存与RSpec测试框架深度解析
1. Rails缓存中的ETags
在Rails应用里,默认不会设置 Last-Modified 响应头,需要开发者手动设置。以下介绍两种方法:
1.1 fresh_when(options)
此方法会设置 ETag 和/或 Last-Modified 头信息。若请求已是最新的,会返回304未修改响应。新鲜度通过作为 :etag 选项传入的对象(或对象数组)的 cache_key 方法计算。
示例代码如下:
expose(:article)
def show
fresh_when(:etag => article,
:last_modified => article.created_at.utc,
:public => true)
end
这段代码仅在必要时渲染 show 模板。
1.2 stale?(options)
该方法会在响应中设置 ETag 和/或 Last-Modified 头信息,并使用 fresh_when 方法与客户端请求进行对比。若请求与提供的选项不匹配,则认为请求过时,需重新生成。
超级会员免费看
订阅专栏 解锁全文
269

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



