Heroku Cedar には Varnish が提供する http キャッシングがないため、使用したいと思いますRack::Cache
。Rails 3.1.1 はRack::Cache
デフォルトでアクティブになっていると言われましたが、構成に必ず含める必要があります。
config.action_controller.perform_caching = true
使用しているこの実験では、キャッシュ ストアを選択する必要があります。
config.cache_store = :memory_store
キャッシュしたいページのアクションで、次の行を追加しました。
response.header['Cache-Control'] = 'public, max-age=300'
response.header['Expires'] = CGI.rfc1123_date(Time.now + 300)
このコードは Varnish で正常に動作していました。最初のリクエストは 200 を返し、その後 (5 分間) は を返します304
。
これは、Rails 3.1 と Heroku Cedar Stack では発生しません。応答でこれらのヘッダーを取得しますが、後続の要求は 304 ではなく 200 を返します。
私は何を間違っていますか?ありがとうございました。