私はHerokuのCedarスタックでRails 3.0.9アプリケーションを実行しており、S3に静的資産を提供しています。私はこれをtrueに変更した場合、それはより速く、キャッシュされたコンテンツを提供します、またはであるように私はそれを残す必要がありますS3から静的資産を提供
config.serve_static_assets = false
:私のproduction.rbファイルでは、コンフィギュレーションセットがにありましたか?
私はHerokuのCedarスタックでRails 3.0.9アプリケーションを実行しており、S3に静的資産を提供しています。私はこれをtrueに変更した場合、それはより速く、キャッシュされたコンテンツを提供します、またはであるように私はそれを残す必要がありますS3から静的資産を提供
config.serve_static_assets = false
:私のproduction.rbファイルでは、コンフィギュレーションセットがにありましたか?
レールガイドから:
config.serve_static_assets静的な資産を提供するためにレール自体を構成します。デフォルトはtrueですが、アプリケーションを実行するために使用されるサーバーソフトウェア(NginxやApacheなど)は静的資産を代わりに提供するため、本番環境ではオフになります。デフォルト設定とは異なり、WEBrickを使用して実行中(絶対におすすめしません!)またはプロダクションモードでアプリをテストするときはtrueに設定してください。さもなければあなたはページのキャッシュを使用できなくなり、パブリックディレクトリの下に定期的に存在するファイルのリクエストがあなたのRailsアプリケーションに衝突します。
これが役に立ちます。
Rafalからの回答は厳密に正しいわけではありません。本質的には、アプリケーションで実行するために選択したRailsのバージョンとスタックの種類によって異なります。 Railsの竹スタック上3.0 Herokuの実行シンのプロセスの前に座っているニスキャッシュがあると
。これにより、静的アセットがキャッシュされ、アプリケーションにぶつかることなく返されます。
Rails 3.0Cedarスタックにはワニスキャッシュがありません。したがって、静的であるかどうかにかかわらず、すべての要求がRailsプロセスに当てられます。レールによる
シーダー Herokuの上にある必要があります3.1は、スラグのコンパイルプロセスの一部としてrake assets:precompile
を実行しようとします。これが何らかの理由で失敗した場合、実行時に静的資産がコンパイルされて提供されることを意味するコードがスラッグに挿入されます。
このに関して特に有効であるのdevの中央上のRails 3.1文書があります:あなたは正しい設定を探しているならhttp://devcenter.heroku.com/articles/cdn-asset-host-rails31
だから、心の中でこれを負担するが。しかし、それを実行する前に、Herokuはデプロイメントを行うときに適切に見えるようにこの設定を変更することに注意してください。そのため、スラッグのコンパイル中にあなたが置いた設定はすべて上書きされます。したがって、あなたがここに入れたものは本当に問題ではありません。
は、Herokuのは、nginxのまたはApacheなどのWebサーバーを使用していないことを考えると
(および記録のために、Herokuのは、nginxのを使用して、あなたはそれを見るために傾向がない)、私はこれをtrueに残しておきます。ありがとう – Simpleton
間違っている、私の答えを参照してください。 –