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 に答える