rake assets: прекомпилировать неопределенный каталог методов?для ноля: NilClass - PullRequest
11 голосов
/ 07 ноября 2011

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

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

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

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

# RAILS_ENV=production rake assets:precompile --trace                        
/usr/local/rvm/gems/ruby-1.9.2-p290@pm/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/ruby-1.9.2-p290@pm/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)

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

Ответы [ 3 ]

10 голосов
/ 25 августа 2012

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

10 голосов
/ 12 декабря 2011

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

1 голос
/ 19 сентября 2013

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...