2012-06-17 14 views
5

新しいRails 3.2.5プロジェクトを開始しました。アセットパイプラインはもはや動作していません。 CSSとJavascriptファイルはもうコンパイルされません。アセットパイプラインが壊れています:fly cssとjsファイルでコンパイルされていません

これは試してみるには、資産を生成するログからの出力です:

Started GET "/assets/application.css?body=1" for 127.0.0.1 at 2012-06-16 23:59:11 -0700 
Served asset /application.css - 200 OK (0ms) 
[2012-06-16 23:59:11] ERROR NoMethodError: undefined method `each' for nil:NilClass 
    /Users/greg/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/rack-1.3.6/lib/rack/handler/webrick.rb:71:in `service' 
    /Users/greg/.rbenv/versions/1.9.2-p290/lib/ruby/1.9.1/webrick/httpserver.rb:111:in `service' 
    /Users/greg/.rbenv/versions/1.9.2-p290/lib/ruby/1.9.1/webrick/httpserver.rb:70:in `run' 
    /Users/greg/.rbenv/versions/1.9.2-p290/lib/ruby/1.9.1/webrick/server.rb: 

Started GET "/assets/application.js?body=1" for 127.0.0.1 at 2012-06-16 23:59:11 -0700 
Served asset /application.js - 200 OK (0ms) 
[2012-06-16 23:59:11] ERROR NoMethodError: undefined method `each' for nil:NilClass 
    /Users/greg/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/rack-1.3.6/lib/rack/handler/webrick.rb:71:in `service' 
    /Users/greg/.rbenv/versions/1.9.2-p290/lib/ruby/1.9.1/webrick/httpserver.rb:111:in `service' 
    /Users/greg/.rbenv/versions/1.9.2-p290/lib/ruby/1.9.1/webrick/httpserver.rb:70:in `run' 
    /Users/greg/.rbenv/versions/1.9.2-p290/lib/ruby/1.9.1/webrick/server.rb:183:in `block in start_thread' 
183:in `block in start_thread' 

更新

<!DOCTYPE html> 
<html> 
<head> 
    <title>Shorai</title> 
    <%= csrf_meta_tags %> 
</head> 
<body id=<%= params[:controller].sub('_controller', '') %>> 

    <% if current_user %> 
    <%= current_user.name %> 
    <%= link_to "Log out", signout_path %> 
    <% else %> 
    <%= link_to "Sign in", "/auth/37signals" %> 
    <% end %> 

    <%= yield %> 

    <%= stylesheet_link_tag "application", :media => "all" %> 
    <%= javascript_include_tag "application" %> 
</body> 
</html> 

アップデート2:

application.scss

* 
* This is a manifest file that'll be compiled into application.css, which will include all the files 
* listed below. 
* 
* Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets, 
* or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path. 
* 
* You're free to add application-wide styles to this file and they'll appear at the top of the 
* compiled file, but it's generally better to create a new file per style scope. 
* 
*= require_self 
*= require_tree . 
*/ 

Update3と: http://f.imgtmp.com/Onpqv.png

私はこれを引き起こしているかわからない、誰もが考えていますか? Greg

+0

3.2.6が多くの点で壊れているので... – shuriu

+0

私はまだレール3.2.6で問題があります:( – Gregory

+0

出力は次のようなページにアクセスしたときに表示されるようですあなたはdev、またはproductionで動作していますか?rakeアセットを実行するとどうなりますか:プリコンパイル? – YuKagi

答えて

1

-v 3.2.5と同様の問題がありました。

何時間ものデバッグの後、私は回避策を講じました。それは素晴らしいことではありませんが、私はそれを解決するまで私を動かすか、他の誰かがより良い運を持っています!

この回避策があまりにもあなたのために働く場合、私はそう...、グレゴリー...私は明示的に私の資産のロードパスを追加しなければならなかったのconfig/application.rbで

興味:

config.assets.paths << Rails.root.join("app", "assets", "stylesheets") 
config.assets.paths << Rails.root.join("app", "assets", "javascripts") 
config.assets.paths << Rails.root.join("vendor", "assets", "stylesheets") 
config.assets.paths << Rails.root.join("vendor", "assets", "javascripts") 
config.assets.paths << Rails.root.join("lib", "assets", "javascripts") 

エンジンにアセットがある場合は、アセットも明示的に追加する必要があります。 -v 3.1.xで正常に動作しました。この回避策が問題を修正したという事実は、バグ(確かに他の人が確かにそれを見つけたでしょう)あるいは3.2.5の設定変更のいずれかを指しているようです。

+0

残念ながら私はまだ同じ問題があります... – Gregory

+0

私はrbenvとruby-buildを再インストールしようとしましたが、まだエラーが発生しています... – Gregory

2

私は同様の問題があり、私はdev環境でキャッシュを無効にして解決しました。 私は、キャッシュが、私は、キャッシングmemcachedをストレージで(開発モードで)有効になっていたとき、私はこのエラーを得たオンザフライでコンパイル

7

資産とうまく再生されないと思いますが、memcachedのプロセスが実行されていませんでした(Rails 3.2.8、Win7)。

したがって、解決策はmemcachedを開始し、Railsサーバーを再起動することでした。

+0

または、memcacheストレージを使用していない場合は、 'development.rb'ファイルの' config.cache_store =:mem_cache_store'行をコメントアウトしてください。 – acconrad

3

キャッシュストア(config.cache_store = :dalli_store)としてmemcacheをアクティブ化した後、同様の問題が発生しました。私は明示的に(config.action_dispatch.rack_cache = nil)、またはhttps://github.com/rails/rails/issues/8366を参照してください

config.action_dispatch.rack_cache = { 
    :metastore => Dalli::Client.new, 
    :entitystore => 'file:tmp/cache/rack/body', 
    :allow_reload => false 
} 

を設定することにより、ラック::キャッシュミドルウェアを不活性化することによってそれを解決することができます。

関連する問題