我尝试通过capistrano部署rails app。所有资产(css,js和图像)都由webpacker构建。我删除了app / assets文件夹,现在当capistrano尝试备份清单时部署失败。此任务始终运行https://github.com/capistrano/rails/blob/master/lib/capistrano/tasks/assets.rake
如果我启用链轮require "sprockets/railtie"
,一切都很好。
答案 0 :(得分:2)
As explained in the capistrano-rails README,如果您不使用资产管道,请从您的Capfile中排除capistrano/rails/assets
。换句话说:
# Instead of this:
require "capistrano/rails"
# Require only these:
require "capistrano/bundler"
require "capistrano/rails/migrations"
但是,如果您使用的是Webpacker,那么您很可能仍需要运行资产管道任务。值得注意的是,您可能仍需要在部署期间运行assets:precompile
,以便触发webpack构建。
在这种情况下,您需要更精确地排除backup_manifest
任务。在the instructions in the official Capistrano docs之后,您可以按如下方式清除默认实现:
# In deploy.rb
Rake::Task["deploy:assets:backup_manifest"].clear_actions