Rails 缓存页面失效 expire_page

lukefan · 2012年07月31日 · 最后由 lengcb 回复于 2017年06月23日 · 3388 次阅读

本人使用 expire_page expire_page '/index.html' 可以工作 expire_page '/home/articles' 可以工作

但是,我有一个 action 是结合 ID 使用的,这就导致了其缓冲页面都是存放在/public/home/article/1.html /public/home/article/2.html 等。 想要找一个命令一次将其都删掉,应该怎么处理?

我尝试了 expire_page '/home/article' expire_page 'home/article/*' expire_page 'home/article/*.html' 等方式,都未果。 求处理方法。

用 * 这种方式过期只能支持 FileStore 的 cache 后端,如果是 Memcached 或其他的就不行的

你的看起来是 FileStore 的存储

你确定 article 和 articles 目录名称没有搞错?

目录名是对的。 我最后采用了FileUtils.rm_r(Rails.root.to_s + "/public/home")的方式处理的这个问题。 我做得是和很小的网站,用 file_store 足够了。

如果用 Redis 缓存,可以用 Hash 类型储存,实现批量过期。印象中 redis_store 只用了 key-value,所以得自己写逻辑。

Rei 回复

最近在看页面缓存的东西,请问页面缓存的文件格式在哪控制的呢?我想缓存的页面是.html 后缀的,可最后都是.mobile。是我 Nginx 配置的问题吗?

Rei 回复

不好意思,刚查出原因了,是在 config/initializers 目录下有个文件了加了一句 Mime::Type.register "text/html", :mobile

需要 登录 后方可回复, 如果你还没有账号请 注册新账号