2012-06-17 19 views
5

Comencé un nuevo proyecto de Rails 3.2.5 y la cartera de activos ya no funciona. El archivo CSS y Javascript ya no se está compilando.La cartera de activos está rota: No se compila en los archivos fly css y js

Ésta es la salida de los registros cuando intenta generar el activo:

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' 

actualización:

<!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> 

Update2:

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

No sé qué está causando esto, alguien tiene una idea? Greg

+0

actualice a los rieles 3.2.6, porque 3.2.5 está roto de muchas maneras ... – shuriu

+0

Todavía tengo el problema incluso con los rieles 3.2.6 :( – Gregory

+0

El resultado se ve como lo que puede ver al visitar una página en el navegador. ¿Se está ejecutando en desarrollo o producción? ¿Qué sucede cuando ejecuta activos de rake: precompilación? – YuKagi

Respuesta

1

Tuve un problema similar con -v 3.2.5.

Después de horas de depuración, puse una solución. No es genial pero me pone en movimiento hasta que pueda resolverlo, ¡o alguien más tiene mejor suerte!

estoy ansioso por ver si esta solución funciona para usted también, Gregory ...

En config/application.rb he tenido que añadir explícitamente las rutas de carga para mis activos ... así:

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") 

Si tiene activos en motores, también deben agregarse explícitamente. Funcionó bien en -v 3.1.x. El hecho de que esta solución soluciona el problema parece apuntar a un error (seguramente otros ya lo habrían encontrado) o bien a un cambio de configuración en 3.2.5.

+0

Desafortunadamente, todavía tengo el mismo problema ... – Gregory

+0

Intenté volver a instalar rbenv y ruby-build pero sigo teniendo el error ... – Gregory

2

Tuve un problema similar y lo resolví deshabilitando la caché en el entorno de desarrollo. Creo caché no juega bien con los activos de la marcha compilación

7

Tengo este error cuando me había permitido el almacenamiento en caché (en el modo de desarrollo) con memcached de almacenamiento, pero el proceso memcached no estaba funcionando (Rails 3.2.8, Win7).

La solución por lo tanto era simplemente iniciar memcached y reiniciar el servidor de Rails.

+0

O si no está utilizando el almacenamiento de Memcache, asegúrese de comentar la línea 'config.cache_store =: mem_cache_store' en su archivo' development.rb'. – acconrad

3

Tuve un problema similar después de activar Memcache como almacén de caché (config.cache_store = :dalli_store). Podría resolverlo desactivando Rack middleware :: caché de forma explícita (config.action_dispatch.rack_cache = nil), o estableciendo

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

Ver https://github.com/rails/rails/issues/8366.

Cuestiones relacionadas