Нет такого файла или каталога (public/assets/manifest *)
Во время моих рельсов (3.2.16v) развернитесь с capistrano v3. Я получаю следующую ошибку.
$cap development deploy --trace
DEBUG [014a40e4] Running /usr/bin/env [ -L /home/ec2-user/capistrano-3/my_app/releases/20140117124107/public/assets ] on 50.13.220.55
DEBUG [014a40e4] Command: [ -L /home/ec2-user/capistrano-3/my_app/releases/20140117124107/public/assets ]
DEBUG [014a40e4] Finished in 0.602 seconds with exit status 1 (failed).
DEBUG [9c5901ab] Running /usr/bin/env [ -d /home/ec2-user/capistrano-3/my_app/releases/20140117124107/public/assets ] on 50.13.220.55
DEBUG [9c5901ab] Command: [ -d /home/ec2-user/capistrano-3/my_app/releases/20140117124107/public/assets ]
DEBUG [9c5901ab] Finished in 0.639 seconds with exit status 1 (failed).
////эта ошибка находится в конце трассировки
** Вызов deploy: assets: backup_manifest (first_time)
** Выполнить развертывание: assets: backup_manifest
DEBUG [a08f4c02] cp:
DEBUG [a08f4c02] cannot stat `/home/ec2-user/capistrano-3/my_app/releases/20140117064709/public/assets/manifest*'
DEBUG [a08f4c02] : No such file or directory
DEBUG [a08f4c02]
cap aborted!
cp stdout: Nothing written
cp stderr: Nothing written
Tasks: TOP => deploy:assets:backup_manifest
The deploy has failed with an error: #<SSHKit::Command::Failed: cp stdout: Nothing written
cp stderr: Nothing written
>
** Invoke deploy:failed (first_time)
** Execute deploy:failed
У меня нет никакой папки с ресурсами на моей локальной машине. Может ли кто-нибудь помочь мне?
Ответы
Ответ 1
Это случается со звездочками 3.0.x и capistrano-rails и, по-видимому, фиксируется с помощью capistrano-rails 1.1.3.
Если ваш Gemfile имеет gem 'capistrano-rails', '~> 1.1'
(как рекомендовано в руководстве по установке), просто введите bundle update capistrano-rails
для обновления.
См. https://github.com/capistrano/rails/blob/master/CHANGELOG.md#113-apr-18-2015 или https://github.com/capistrano/rails/issues/111
Ответ 2
Try:
touch /home/ec2-user/capistrano-3/my_app/releases/20140117064709/public/assets/manifest
Я думаю, что предыдущий cap <env> deploy
, который был неправильно сконфигурирован, замаскировал работы, и теперь вы навсегда обречены. Просто touch
с файлом манифеста позволит задаче deploy:assets:backup_manifest
продолжать выполнять свою работу, поскольку она ожидает, что файл манифеста предыдущих версий будет очищен. Итак, дайте ему что-нибудь почистить. В любом случае, это решило мою проблему.
tl;dr;
Делайте мусор, держите мусор, кто-то, где-то убирается после вас, в этом случае один предыдущий прекомпиляционный мусор assets_manifest_backup
treasure.
Я также использовал ssh'ed для сервера, гарантировал, что RAILS_ENV=production bundle
работал нормально, и ему пришлось разрешить некоторые ключи развертывания ssh для частного репозитория git. Это могла быть жвачка, вскакивающая мои работы.
Ответ 3
Добавить в Gemfile gem 'sprockets', '2.12.3'
Ответ 4
Вы прекомпилируете свои активы? возможно, это поможет предварительно скомпоновать ваши активы перед развертыванием.