6

Rails 3.1 に「アップグレード」してから、私のアプリは開発モードで非常に遅くなります

(リクエストごとに 30 件以上)

私はたくさんの画像を持っていますが、この時間遅延のほとんどは、各画像の各 GET リクエストを処理するアセット パイプラインのようです。

ステージング モードまたはプロダクション モードでは、アセットがキャッシュされているため、この問題は発生しません。

私が言われていないことはありますか、それともこれが私たちが今期待されている方法ですか?

4

4 に答える 4

4

各リクエストの開始時にコードをロードする gem またはアプリの一部がある場合、または単にアプリの一部を参照するだけで、その多くがロードされる原因となる場合、リクエストは遅くなる可能性があります。これらのほとんどでは、オートローダーがリクエスト遅延の主な原因です。

Rails の自動リローダーは、各リクエストの開始時にオートロード可能なクラス/モジュールなどを削除します。Rails が必要なすべてのソース ファイルをリロードするため、各リクエストの開始時に大幅な遅延が発生する可能性があります。

https://github.com/wavii/rails-dev-tweaksを試してみるのもいいかもしれません。これにより、自動リローダーを開始させるリクエストをきめ細かく制御できます。これは実際にはルートの修正ではありません。原因 (おそらく実行する必要のないすべてのリクエストの開始時に何かが余分な作業を行っている) - しかし、それは確かにそのような問題のほとんどを軽減します.

于 2011-07-12T04:21:04.483 に答える
0

アプリが遅い場合は、アプリまたは使用しているgemの1つが原因です。私も同様の問題を抱えていましたが、Mongoidがそのケースであったようです。ここでもっと読むことができます:

http://martinciu.com/2011/06/rails-3-1-and-slow-asset-pipeline.html

于 2011-06-26T08:07:57.617 に答える
0

その間:

cp -R app/assets/images パブリック/アセット

本当に役立ちます

public/assets/*忘れずに .gitignoreに追加してください

于 2011-06-22T10:33:19.490 に答える
-1

rake タスクを使用できます。

rake assets:precompile RAILS_ENV=development RAILS_ASSETS_NONDIGEST=true

上で述べたように、 public/assets/* を .gitignore に含めることを忘れないでください

于 2011-07-04T12:44:31.190 に答える