私は、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 ヘッダーは存在します。それはうまくいくはずですよね?