我一直在使用fresh_when 之类的辅助方法在我最新的rails 3.2 应用程序(即将发布4)上实现HTTP 缓存。我现在对索引操作使用相同的方法。类似于:
...
def index
@resources = Resource.all
fresh_when @resources
end
...
它对 HTML 请求运行良好(它响应 304 代码或 200 加上 index.html 模板)。但是,我不能让它适用于异步 js 请求。在客户端上,我定期向同一端点发送“脚本”请求。我期待它会有类似的行为(使用 index.js 模板响应 304 或 200)。事实是,它不是。它总是 200 OK 和 index.js。现在,我检查了请求标头,即使 last-modified-since 标头不存在,etag 也存在。它应该工作,对吧?