Rake assets: precompile undefined каталог методов? для nil: NilClass

При попытке сделать активы: прекомпиляция для веб-сайта с производством, я впервые столкнулся с этой ошибкой.

 rake assets:precompile undefined method directory? for nil:NilClass

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

Полный пример:

# RAILS_ENV=production rake assets:precompile --trace                        
/usr/local/rvm/gems/[email protected]/gems/rack-1.3.4/lib/rack/backports/uri/common_192.rb:53: warning: already initialized constant WFKV_
** Invoke assets:precompile (first_time)
** Execute assets:precompile
/usr/local/rvm/gems/[email protected]/gems/rack-1.3.4/lib/rack/backports/uri/common_192.rb:53: warning: already initialized constant WFKV_
rake aborted!
undefined method `directory?' for nil:NilClass

Tasks: TOP => assets:precompile
(See full trace by running task with --trace)

Я с нетерпением жду, чтобы кто-то понял это, я часами ломал свой мозг и ответы в Google.

Ответы

Ответ 1

Это то, что происходит, когда файловая система не может найти одно из активов, которое, по его мнению, должно прекомпилировать. Это произошло со мной, когда моя VM не смогла найти один из файлов в моей общей папке (проблема Weird VMware, где она появилась в списке каталогов, но файл фактически не существовал)

Ответ 2

Я создал символическую ссылку на несуществующий файл по ошибке в каталоге assets/javascript. Исправлена ​​проблема с удалением ссылки. Обратите внимание, что у меня есть другие ссылки в каталоге ресурсов, поэтому ссылки вообще не являются проблемой.

Ответ 3

В моем случае у меня была эта проблема при развертывании приложения в Heroku. И один из моих файлов был связан с символом где-то вне репозитория GIT, поэтому в файле не было int 'master'.

Затем мне пришлось удалить символическую ссылку (rm .../file), затем скопировать исходный файл (cp file1 .../file) и, наконец, добавить его в репозиторий (git -a -m "Added a forgotten file")