我读过几个关于HTTP缓存的博客,并尝试在我的rails应用程序中实现它,并使其正常工作。但是问题是,每当我直接修改我的模板文件(index.erb文件)时,这些更改就不会出现在浏览器上,服务器给我的是304没有修改的response.if --我从数据库编辑我的任何用户--然后只有这些更改出现在网页上。
因此,我只想知道是否有任何方法来过期缓存,并在http缓存中的模板文件发生更改时向用户发送200个响应。
class UsersController < ApplicationController
before_action :set_user, only: [:show, :edit, :update, :destroy]
# GET /users
# GET /users.json
def index
@users = User.all
fresh_when etag: @users
end
end发布于 2015-01-13 16:30:30
rails中的条件获取 (又名etag)支持非常简单。它根据传入的原因计算etag。因此,如果您有某种类型的计数器,当您更改模板时会增加,则缓存键过期,浏览器将请求新版本。
整个任务可以通过使用部署应用程序的git (或其他一些SCM键)实现自动化。因此,在每次部署时,都会破坏缓存。这种方法简单,易于调试。
https://stackoverflow.com/questions/27923996
复制相似问题