5

私がするかどうか:

head 302

また

head 307

また

redirect_to

同じコントローラーアクションで呼び出します

response.headers['Cache-Control'] = "public, max-age=86400"

影響はありません。Rails は以下を送信します。

Cache-Control: no-cache

何があっても。Cache-Control ヘッダーを送信して、1 日リダイレクトを提供するようにエッジ キャッシュに指示する必要があります。これは可能ですか?

4

4 に答える 4

12

response.cache_control オブジェクトを変更する必要があるため (後で Cache-Control ヘッダーを設定するために使用されるため)、Cache-Control をヘッダーに直接設定することはできません (もう?)。

幸いなことに、expires_in メソッドがこれを処理してくれます。

expires_in 1.day, :public => true

詳細はこちら: http://apidock.com/rails/ActionController/ConditionalGet/expires_in

于 2011-06-15T03:32:33.640 に答える
1

代わりにこれを使用してみてください

response.headers['Cache-Control'] = 'public, max-age=300'

本番モードであることを確認してください。Rails は開発中にキャッシュしません。

于 2011-06-05T23:07:15.090 に答える
1

Rails 5でできること

response.cache_control = 'public, max-age=86400'
于 2016-03-17T16:30:38.880 に答える
0
. I need to send the Cache-Control header to instruct an edge cache to serve the redirect for a day.

これはどのように可能ですか?一時リダイレクトの場合、ブラウザは常に最初に元の URL を取得しようとし、リダイレクト時に他の URL を試行します。プロキシにキャッシュされている場合は、そこから提供できます。ただし、ブラウザはサーバーとの最初の接続を行います。

于 2011-06-03T22:49:54.420 に答える