2012-01-15 11 views
5

Rails 3.1のアセットパイプラインでは、ページの読み込み時間が非常に遅いことに気づいています。各アセット(css/js/image)の読み込みには0.5秒から1秒の時間がかかります。これは本当に開発を妨げ始めています。私は生産に同じ問題がありません。Rails 3.1でアセットパイプラインがローカルホストを遅くした理由

解決策はありますか?以下のログ・ファイルは、個々の資産が0.5にロードされる様子を示している - 第二の0.3:

# load of page itself... 
... 
Completed 200 OK in 1231ms (Views: 933.0ms | ActiveRecord: 15.6ms) 


Started GET "/assets/blueprint/screen.css?body=1" for 127.0.0.1 at 2012-01-15 15:53:00 +0000 
Served asset /blueprint/screen.css - 304 Not Modified (0ms) 


Started GET "/assets/application.css?body=1" for 127.0.0.1 at 2012-01-15 15:53:00 +0000 
Served asset /application.css - 304 Not Modified (0ms) 


Started GET "/assets/blueprint/print.css?body=1" for 127.0.0.1 at 2012-01-15 15:53:00 +0000 
Served asset /blueprint/print.css - 304 Not Modified (0ms) 


Started GET "/assets/universal/application.js?body=1" for 127.0.0.1 at 2012-01-15 15:53:01 +0000 
Served asset /universal/application.js - 304 Not Modified (2ms) 


Started GET "/assets/universal/animate-color.js?body=1" for 127.0.0.1 at 2012-01-15 15:53:01 +0000 
Served asset /universal/animate-color.js - 304 Not Modified (0ms) 


Started GET "/assets/universal/animate-shadow.js?body=1" for 127.0.0.1 at 2012-01-15 15:53:02 +0000 
Served asset /universal/animate-shadow.js - 304 Not Modified (0ms) 


Started GET "/assets/jquery_ujs.js?body=1" for 127.0.0.1 at 2012-01-15 15:53:02 +0000 
Served asset /jquery_ujs.js - 304 Not Modified (0ms) 


Started GET "/assets/universal/jquery.placehold.js?body=1" for 127.0.0.1 at 2012-01-15 15:53:02 +0000 
Served asset /universal/jquery.placehold.js - 304 Not Modified (0ms) 


Started GET "/assets/universal/autoresize.js?body=1" for 127.0.0.1 at 2012-01-15 15:53:03 +0000 
Served asset /universal/autoresize.js - 304 Not Modified (0ms) 


Started GET "/assets/universal/utilities.js?body=1" for 127.0.0.1 at 2012-01-15 15:53:03 +0000 
Served asset /universal/utilities.js - 304 Not Modified (0ms) 


Started GET "/assets/universal/validators.js?body=1" for 127.0.0.1 at 2012-01-15 15:53:03 +0000 
Served asset /universal/validators.js - 304 Not Modified (0ms) 


Started GET "/assets/jquery.js?body=1" for 127.0.0.1 at 2012-01-15 15:53:04 +0000 
Served asset /jquery.js - 304 Not Modified (0ms) 


Started GET "/assets/whitelabel/pingpanel/pingpanel.css?body=1" for 127.0.0.1 at 2012-01-15 15:53:04 +0000 
Served asset /whitelabel/pingpanel/pingpanel.css - 304 Not Modified (0ms) 


Started GET "/assets/logo.png" for 127.0.0.1 at 2012-01-15 15:53:05 +0000 
Served asset /logo.png - 304 Not Modified (0ms) 


Started GET "/assets/application_bar_background.png" for 127.0.0.1 at 2012-01-15 15:53:05 +0000 
Served asset /application_bar_background.png - 304 Not Modified (0ms) 


Started GET "/assets/linen-new.jpg" for 127.0.0.1 at 2012-01-15 15:53:06 +0000 
Served asset /linen-new.jpg - 304 Not Modified (0ms) 

減速の効果がより明確にクロム・ネットワーク・アナライザで見ることができる。

enter image description here

答えて

3

アセットがロードされると、それはRailsのenvを通過しなければならず、Railsはすべてのコードをリロードします。多くのアセットを使用すると、ページの読み込みが遅くなることがあります。

Railsがコードをリロードするタイミングをより詳細に制御できるようにする、宝石をで試してみてください。減速の問題を修正する必要があります。

+1

'rails-dev-tweaks'は優れた仕事をしました、ありがとうございます。平均ページ読み込み時間は9秒から2.6秒に短縮されました。 –

4

Sprocketsはオートローダーを使用していないため、rails-dev-tweaksを使用すると改善が限定的になることがあります。スプロケットは伝統的なルートとして取り付けられています。あなたのdevelopment.rbファイルとセットに

ゴー:

config.assets.debug = false 

これは、一つのファイルの代わりに、多くのサービスを提供するためのdevのモードを変更しますが、これは少し物事をスピードアップする必要があります。

ソースデバッグを行う必要がある場合、URLパラメータとしてdebug = 1を追加すると、Sprocketsはその要求だけをファイルに分割します。

+1

'rails-dev-tweaks'を追加する前に、私はこれを実験しました。 dev-tweaksを使った後、私は資産のデバッグ設定を変更することはほとんど効果がないことを発見しました。dev-tweaksが実際にヒットしていないことを実際に保証していたからです。 –

関連する問題