【问题标题】:Rails manifest file not found (deploying with Capistrano)未找到 Rails 清单文件(使用 Capistrano 部署)
【发布时间】:2025-12-24 00:25:54
【问题描述】:

我正在尝试使用 Capistrano 部署 Rails 应用程序,但由于没有清单文件而失败。

这是我运行cap production deploy时得到的:

01 mkdir -p /home/deploy/list/releases/20171220202012/assets_manif…
✔ 01 influencerlist.io 0.048s
  WARN  Rails assets manifest file not found.
(Backtrace restricted to imported tasks)
cap aborted!
SSHKit::Runner::ExecuteError: Exception while executing on host influencerlist.io: Rails assets manifest file not found.


Caused by:
Capistrano::FileNotFound: Rails assets manifest file not found.

Tasks: TOP => deploy:assets:backup_manifest
(See full trace by running task with --trace)
The deploy has failed with an error: Exception while executing on host influencerlist.io: Rails assets manifest file not found.

知道如何解决这个问题吗?我试图找到一个解决方案,但它们似乎都不起作用。

谢谢!

【问题讨论】:

  • 你能告诉我们cap production doctor的输出吗?确保编辑敏感信息(如果有)。

标签: ruby-on-rails-5 capistrano rvm-capistrano


【解决方案1】:

如果您在 Rails 应用程序中使用 webpacker,并且您已完全禁用 Sprocket,则在尝试部署时可能会收到以下错误:Rails assets manifest file not found。这发生在 deploy:assets:backup_manifest 任务中。

此任务是为 Sprockets 构建的,不适用于 webpacker。只需将以下行添加到您的 config/deploy.rb 即可跳过它:

Rake::Task["deploy:assets:backup_manifest"].clear_actions

https://makandracards.com/makandra/100898-fix-for-rails-assets-manifest-file-not-found-in-capistrano-deploy

【讨论】:

  • 最好同时添加Rake::Task["deploy:assets:restore_manifest"].clear_actions 以防止deploy:rollback 崩溃。查看this 答案以获取更多信息。
【解决方案2】:

我解决了它,我对这个解决方案感到惊讶......

我在 /shared/public/assets 中创建了两个名为 .manifest.json 和 .sprockets-manifest.json 的空文件,并且成功了。

【讨论】:

  • 就我而言,我通过在shared/public/assets 中创建一个空文件manifest.json(不带点)解决了我的问题。