0

我一直在使用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 也存在。它应该工作,对吧?

4

1 回答 1

0

好的,找到它并且很容易:问题正是缺少 If-Modified 标头。我将 $.getScript 调用更改为 $.ajax,并将 ifModified 选项设置为 true,它开始工作。

于 2013-08-20T08:34:05.990 回答