没有这样的文件或目录(public/assets/manifest*)
Posted
技术标签:
【中文标题】没有这样的文件或目录(public/assets/manifest*)【英文标题】:No such file or directory(public/assets/manifest*) 【发布时间】:2014-02-06 10:23:03 【问题描述】:在我使用 capistrano v3 部署 rails(3.2.16v) 期间,我收到以下错误。
$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).
////这个错误在trace的末尾
** 调用 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
我的本地机器上也没有任何资产文件夹。任何人都可以帮助我吗??
【问题讨论】:
这里有人问过类似的问题。希望对你有帮助***.com/questions/17720253/… @MarkoJurinčič - 我认为这是针对 capistrano v2 的。我正在使用 v3 找到另一个链接。它也适用于版本 2。但也许它可以帮助你:robmclarty.com/blog/… @MarkoJurinčič - 这也没有锻炼 【参考方案1】:这发生在 sprockets 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】:添加到 Gemfile gem 'sprockets', '2.12.3'
【讨论】:
为什么会被否决?这个解决方案对我有用。见github.com/capistrano/rails/issues/111。此问题是由 sprocket 3 使用 .sprocket-manifest[blablabla] 而不是 .manifest[blablabla] 引起的【参考方案3】:试试:
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
的宝藏。
我还通过 ssh 连接到服务器,确保 RAILS_ENV=production bundle
工作正常,并且必须为私有 git 存储库解析一些 ssh 部署密钥。那可能是口香糖,把我的作品弄糊涂了。
【讨论】:
遇到同样的错误,$ mkdir public/assets && touch public/assets/manifest
=> $ cap <env> deploy
=> 万岁。谢谢彼得【参考方案4】:
您是否正在预编译您的资产?也许在部署之前预编译您的资产会有所帮助。
【讨论】:
以上是关于没有这样的文件或目录(public/assets/manifest*)的主要内容,如果未能解决你的问题,请参考以下文章
未捕获的异常'RuntimeException',消息'无法创建目录public / assets // node_modules / font-awesome / fonts
clang:错误:没有这样的文件或目录:'dynamic_lookup' clang:错误:没有这样的文件或目录:'suppress'