the rails present not images asset ruby ruby-on-rails-4 asset-pipeline sprockets

ruby - rails - the asset is not present in the asset pipeline



La compilación de activos se bloquea en el entorno del servidor con: "NoMethodError: método indefinido`[] ''para nil: NilClass " (3)

He estado sacándome el pelo por este. Siempre he tenido una mala relación con el inventario 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 lo despliego 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''

En serio, no sé cómo depurar esto ... Localmente no puedo reproducirlo y en mi servidor el error no me apunta a ningún lado ...

Busqué el error y probé un par de cosas, pero nada ayudó. Algunos dicen que el error va a desaparecer al actualizar ... O al agregar la gema de los piñones antes de la gema de sass-rails.

Mi proyecto se configura como el siguiente; Una aplicación de Rails 4 con una gema que contiene elementos 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

Quitar todo el helper asset-url() parece funcionar ... Pero de nuevo, no tengo idea de por qué ...


Tuve el problema de samme y resultó ser un archivo css que contiene asset-url que no tenía la extensión .scss . Extrañamente pude compilar los activos localmente pero no en el servidor.


el problema es debido a la extensión .css en lugar de .scss. Lo he cambiado en .scss y funcionó.


Heroku tiene un post sobre esto. Precompírelo localmente y agregue todos esos archivos, especialmente /public/assets/manifest.yml . Heroku debe ignorar la compilación previa y proceder.