我遇到了最奇怪的错误,使用rails 3.2加上etagger gem,它是rails 4的一部分。我在CRUD资源路由控制器和#etag调用以及#fresh_when上使用它。这一切都很好,直到我再次部署。用于验证缓存的资源(current_user和控制器资源)当然不会在两者之间更新,这使得浏览器呈现先前缓存的页面。问题是,给定的缓存页面有错误的csrf标记。
如何在部署之间正确地使缓存无效?也许我可以使用当前用户的last_signed_in_at字段(我正在使用devise,btw)?如果我假设所有用户都会注销,这似乎是公平的。
答案 0 :(得分:0)
当前策略:我使用最新的提交密钥来使部署之间的缓存无效。这涉及启动时的系统调用,这是(取决于您的倾向)实际和开销。