Подтвердить что ты не робот

Нет такого файла или каталога (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

У меня нет никакой папки с ресурсами на моей локальной машине. Может ли кто-нибудь помочь мне?

4b9b3361

Ответ 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

Вы прекомпилируете свои активы? возможно, это поможет предварительно скомпоновать ваши активы перед развертыванием.