Нет ошибки метода,[ ] неопределено для нулевого класса при предварительной компиляции ресурсов для производства

В моем режиме разработки, когда я предварительно компилирую ресурсы приложения, используя команду

rake bundle exec rake assets:precompile RAILS_ENV=production --trace

Я получаю следующую ошибку

NoMethodError: undefined method '[]' for nil:NilClass
/home/sable/.rvm/gems/ruby-2.3.0/gems/sprockets-3.6.3/lib/sprockets/sass_processor.rb:278:in `sprockets_context'
/home/sable/.rvm/gems/ruby-2.3.0/gems/sprockets-3.6.3/lib/sprockets/sass_processor.rb:124:in `asset_path'
/home/sable/.rvm/gems/ruby-2.3.0/gems/sprockets-3.6.3/lib/sprockets/sass_processor.rb:137:in `asset_url'
/home/sable/.rvm/gems/ruby-2.3.0/gems/sprockets-3.6.3/lib/sprockets/sass_processor.rb:155:in `image_url'
/home/sable/.rvm/gems/ruby-2.3.0/gems/sass-3.4.22/lib/sass/script/tree/funcall.rb:143:in `_perform'

Когда я запускаю свой сервер в режиме разработки с помощью команды rails s, возникает ошибка, которая, я думаю, может быть причиной ошибки перед компиляцией, а именно:

ActionController::RoutingError (No route matches [GET] "/javascripts/defaults.js"):

Я прочитал все данные о рельсах и рельсах, но не могу все обернуть вокруг себя и решить проблему, так как я новичок в структуре рельсов, и я буду благодарен за любое направление или помощь.

Решение Я отредактировал файл

/home/sable/.rvm/gems/ruby-2.3.0/gems/sprockets-3.6.3/lib/sprockets/sass_processor.rb 

например, из строки 120 я добавил строку "помещает" путь "" в строку 122, чтобы я мог видеть путь, по которому исходит ошибка предварительной компиляции

def asset_path(path, options = {})
    path = path.value
    puts path........

я сохранил файл и снова побежал

rake bundle exec rake assets:precompile RAILS_ENV=production --trace

я увидел, что я использовал вспомогательный метод sasss 'image-url' в файле css, поэтому прекомпилятор не мог каким-то образом добраться до этого файла, я создал новый файл с расширением css.scss, это решило мою проблему, я могу не могу объяснить это лучше, потому что я не совсем понимаю это полностью, но сумел понять из опыта людей, оформить заказ, http://guides.rubyonrails.org/asset_pipeline.html и Как ссылаться на изображения в CSS в Rails 4.

1 ответ

Попробуйте команду ниже.

RAILS_ENV = производственный пакет exec rake assets: прекомпиляция --trace

Другие вопросы по тегам