没有这样的文件或目录(public/assets/manifest*)

use*_*523 14 capistrano ruby-on-rails manifest amazon-ec2 amazon-web-services

在我的rails(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).
Run Code Online (Sandbox Code Playgroud)

////此错误位于跟踪的末尾

**调用deploy:assets:backup_manifest(first_time)

**执行deploy: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
Run Code Online (Sandbox Code Playgroud)

我的本地计算机上也没有任何资源文件夹.有谁能够帮我??

a2i*_*ikm 19

这种情况发生在链轮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-2015https://github.com/capistrano/rails/issues/111


Pet*_*etz 14

尝试:

touch /home/ec2-user/capistrano-3/my_app/releases/20140117064709/public/assets/manifest
Run Code Online (Sandbox Code Playgroud)

我认为之前的cap <env> deploy错误配置已经搞砸了作品,现在你永远注定了.简单地touch使用清单文件,将允许任务deploy:assets:backup_manifest继续执行其操作,因为它期望先前的构建清单文件在那里进行清理.所以,给它一些清洁的东西.无论如何,这解决了我的问题.

tl;dr;制作垃圾,不停地乱扔垃圾,某人,某个地方会在你之后清理,在这种情况下,一个以前的预编译垃圾是assets_manifest_backup宝藏.

我也对服务器进行了测试,确保RAILS_ENV=production bundle工作正常,并且必须为私有git repo解析一些ssh部署密钥.这可能是口香糖,弄糟了我的作品.


小智 5

添加到Gemfile gem 'sprockets', '2.12.3'


小智 0

您正在预编译您的资产吗?也许在部署之前预编译您的资产会有所帮助。