2011-08-30 7 views
5

私はアプリをアップグレードする際に手続きをしています。現在3.1.rc8です。rails 3.1 - 3.0.xのように開発資産を提供するように強制する?

問題が発生するごとに、すべての要求に対して、すべての単一のアセットがレールスタックを通過するように見えるという問題があります。我々は話している、すべての画像、jsとcssファイル(そしてそこにはたくさんのものがある)。最初のリクエストの後、彼らはすべて304sを返しますが、それはまだSO SLOWです。

すべてのリクエスト後にこのの全体の多くがあります:

Started GET "/assets/jquery-ui-1.8.16.custom.css?body=1" for 127.0.0.1 at 2011-08-30 15:36:21 -0400 
Served asset /jquery-ui-1.8.16.custom.css - 304 Not Modified (0ms) 

Started GET "/assets/yui.css?body=1" for 127.0.0.1 at 2011-08-30 15:36:21 -0400 
Served asset /yui.css - 304 Not Modified (0ms) 

どのように私は、彼らが3.0.xの中に使用のような資産は​​、開発中にのみ、アップ提供を受けることができますか?私はまた、dev内の単一のファイルにコンパイルされてからの私のcss/jsのを防ぐために、これらのタグを使用しています

= stylesheet_link_tag 'application', :debug => Rails.env.development? 
= javascript_include_tag 'application', :debug => Rails.env.development? 

ここに私のapplication.rbは

require File.expand_path('../boot', __FILE__) 

require 'rails/all' 

if defined?(Bundler) 
    Bundler.require(:default, :assets, Rails.env) 
end 

module Fooapp 
    class Application < Rails::Application 
    config.encoding = "utf-8" 

    config.filter_parameters += [:password, :password_confirmation] 

    config.assets.enabled = true 

    config.assets.version = '1.0' 
    end 
end 

とdevelopment.rbです。

Fooapp::Application.configure do 

    config.cache_classes = false 

    config.whiny_nils = true 

    config.consider_all_requests_local  = true 
    config.action_controller.perform_caching = false 

    config.action_mailer.raise_delivery_errors = true 

    config.active_support.deprecation = :log 

    config.action_dispatch.best_standards_support = :builtin 

    config.assets.compress = false 

    config.assets.debug = true 
end 

答えて

0

私が見た遅さは、主にスフィンクス(私のGemfileにあります)を考えることに関連しています。開発中、TSはすべてのページリクエストでI18n関連のものをロードし、すべてのアセットはページリクエストと見なされます。

https://github.com/freelancing-god/thinking-sphinx/blob/v2.0.7/lib/thinking_sphinx/railtie.rb#L29

とにかく、TSのメンテナが認識して、ADN、そのファイルは、もはやマスター上に存在しません。新しいリリースが作られるまで、あなたはその2つのI18n行をローカルでコメントアウトすることができます。

1

Railsでは、すべてのSprocketsアセットリクエストでto_prepareフックのすべてが実行されています。また、フックで大量の作業を実行する数多くの宝石があります。

(一般に、または資産要求のためだけに)プリロードフックを最適化するのを待つのではなく、あなたのコードを再ロードすることができます。 https://github.com/wavii/rails-dev-tweaksをご覧ください。アセット要求中のプリロードフック(コードのリロードを含む)を無効にします。

希望する他のリクエストタイプにも設定できます

+0

その宝石の価値はありますか?多くの助けになります。 – Andy

関連する問題