【问题标题】:No such file or directory(public/assets/manifest*)没有这样的文件或目录(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

我的本​​地机器上也没有任何资产文件夹。任何人都可以帮助我吗??

【问题讨论】:

  • 这里有人问过类似的问题。希望对你有帮助stackoverflow.com/questions/17720253/…
  • @MarkoJurinčič - 我认为这是针对 capistrano v2 的。我正在使用 v3
  • 找到另一个链接。它也适用于版本 2。但也许它可以帮助你:robmclarty.com/blog/…
  • @MarkoJurinčič - 这也没有锻炼

标签: ruby-on-rails amazon-web-services amazon-ec2 capistrano manifest


【解决方案1】:

这发生在 sprockets 3.0.x 和 capistrano-rails 上,似乎在 capistrano-rails 1.1.3 上得到解决。

如果您的 Gemfile 有 gem 'capistrano-rails', '~&gt; 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

【讨论】:

  • 谢谢。这对我有帮助。
  • 谢谢!我遇到了同样的问题
【解决方案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 &lt;env&gt; deploy 已经搞砸了工作,现在你永远注定要失败。只需touch 一个清单文件,将允许任务deploy:assets:backup_manifest 继续做它的事情,因为它希望以前的构建清单文件在那里清理。所以,给它一些清洁的东西。无论如何,这解决了我的问题。

tl;dr;制造垃圾,继续乱扔垃圾,有人,某处会在你之后清理,在这种情况下,以前的预编译垃圾是assets_manifest_backup的宝藏。

我还通过 ssh 连接到服务器,确保 RAILS_ENV=production bundle 工作正常,并且必须为私有 git 存储库解析一些 ssh 部署密钥。那可能是口香糖,把我的作品弄糊涂了。

【讨论】:

  • 遇到同样的错误,$ mkdir public/assets &amp;&amp; touch public/assets/manifest => $ cap &lt;env&gt; deploy => 万岁。谢谢彼得
【解决方案4】:

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

【讨论】:

    猜你喜欢
    • 2015-01-23
    • 2018-12-22
    • 1970-01-01
    • 2015-04-08
    • 1970-01-01
    • 2021-06-24
    • 2015-02-20
    • 1970-01-01
    相关资源
    最近更新 更多