我一直在使用诸如fresh_when之类的帮助器方法在最新的rails 3.2应用程序(即将于4月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也仍然存在。它应该工作,对不对?
好的,找到它并且很容易:问题恰恰是缺少If-Modified标头。我将ifModified选项设置为true,将$ .getScript调用更改为$ .ajax,它开始工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句