1

私の Rails 3.2 アプリは、リクエスト#stale?If-Modified-SinceHTTP ヘッダーを使用Last-Modifiedし、レスポンスでヘッダーを使用して、データを動的に生成するかどうかを決定します。curl -D headers.txtこれは、正しいIf-Modified-Since値が提供された場合は 304 応答が送信され、Last-Modifiedそれ以外の場合は要求データに沿ってヘッダーが送信されることを示すように、(webrick または unicorn_rails を使用するかどうかにかかわらず) 開発では非常にうまく機能します。

残念ながら、一度 nginx の背後にデプロイされると、 If-Modified-Since(正しいヘッダー値を提供して) unicorn (したがって Rails アプリ) に渡されることもLast-Modified、クライアントに伝達されることもありません。リクエストは無条件に生成され、レスポンスに適切なヘッダーが含まれることはありません。

4

1 に答える 1

1

nginxは実際には何も削除していなかったことがわかりました。計装は、それIf-Modified-Sinceがコントローラーによって受信されたことを示しました。Rails#stale?は悪い結果を含むリクエストを受け取っていたため、nil引数が発生し、それを黙って飲み込み、その後、との比較If-Modified-Sinceと位置付けLast-Modifiedを無視していましたnil

于 2012-05-29T08:36:36.767 に答える