Сбой компиляции актива в среде сервера с: «NoMethodError: неопределенный метод` [] 'для nil: NilClass »
Я вырывал свои волосы для этого. У меня всегда были плохие отношения с конвейером активов, это всегда доставляло мне неприятности .. И сегодня снова ..
Когда я пытаюсь скомпилировать свои ресурсы локально, все в порядке:
$ RAILS_ENV=production rake assets:precompile --trace
Но когда я развертываюсь с Capistrano, который делает:
cd /var/www/xxx/releases/20140717164232 && ( RAILS_ENV=production bundle exec rake assets:precompile )
Вылетает со следующей ошибкой:
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'
Я серьезно не знаю, как отладить это .. Локально я не могу воспроизвести это, и на моем сервере ошибка просто не указывает мне нигде ..
Я искал ошибку и попробовал пару вещей, но ничего не помогло. Некоторые говорят, что ошибка исчезает, обновляя .. Или добавляя драгоценный камень звездочек перед драгоценным камнем sass-rails.
Мой проект настроен следующим образом; Обычное приложение rails 4 с жемчужиной, содержащей ресурсы, представляющие шаблон. Я использую следующую строку, чтобы убедиться, что все скомпилировано:
config.assets.precompile += %w(*.png *.jpg *.jpeg *.gif *.css *.js *.eot *.woff *.ttf *.svg)
Любой, кто знает, как решить эту проблему или как ее отладить?
РЕДАКТИРОВАТЬ
Удаление всехasset-url()
помощник, кажется, работает .. Но опять же, понятия не имею, почему ..