La compilación de activos falla en el entorno del servidor con: "NoMethodError: método indefinido '[]' para nil: NilClass"
Me he estado sacando el pelo por este. Siempre he tenido una mala relación con la cartera de activos, siempre me está dando problemas ... Y hoy de nuevo ...
Cuando intento compilar mis activos localmente, todo está bien:
$ RAILS_ENV=production rake assets:precompile --trace
Pero cuando despliegue con Capistrano que hace:
cd /var/www/xxx/releases/20140717164232 && ( RAILS_ENV=production bundle exec rake assets:precompile )
Se bloquea con el siguiente error:
rake aborted!
NoMethodError: undefined method `[]' for nil:NilClass
(in /var/www/xxx/releases/20140717164232/app/assets/stylesheets/application-sign-in.css)
/var/www/xxx/shared/bundle/ruby/2.1.0/gems/sprockets-2.11.0/lib/sprockets/sass_functions.rb:63:in `sprockets_context'
Realmente no sé cómo depurar esto ... Localmente no puedo reproducirlo y en mi servidor el error simplemente no me apunta a ninguna parte ...
Busqué el error e intenté un par de cosas, pero nada ayudó. Algunos dicen que el error desaparecerá actualizando ... O agregando la gema de las ruedas dentadas antes de la gema sass-rails.
Mi proyecto está configurado de la siguiente manera; Una aplicación normal de rails 4 con una gema que contiene activos que representan una plantilla. Utilizo la siguiente línea para asegurarme de que todo está compilado:
config.assets.precompile += %w(*.png *.jpg *.jpeg *.gif *.css *.js *.eot *.woff *.ttf *.svg)
¿Alguien que sepa cómo resolver esto o cómo depurarlo?
EDITAR
Eliminando todoasset-url()
el ayudante parece funcionar ... Pero de nuevo, no tengo idea de por qué ...