当我运行cap deploy
时,:assets
组中的宝石未安装。
这是一个问题,因为我正在使用预编译资产,而Capistrano必须在服务器上运行rake assets:precompile
。除非安装了资产宝石,否则这将失败。
我可以通过在正确的版本目录中手动运行bundle install
来解决此问题。但显然这不是正确的工作流程。
这是Capistrano执行的完整命令,用于在每次部署中安装gem:
rvm_path=/usr/local/rvm /usr/local/rvm/bin/rvm-shell 'default' -c 'cd
/home/deploy/rails_apps/vlc/releases/20120223192328 && bundle install --gemfile
/home/deploy/rails_apps/vlc/releases/20120223192328/Gemfile --path
/home/deploy/rails_apps/vlc/shared/bundle --deployment --quiet --without development test'
这是结束,我认为这可能是问题的一部分:
--deployment --quiet --without development test'
显然,这些标志会导致Bundler在没有:assets
组的情况下安装。这里的预期行为是什么?我看到的与众不同吗? (我猜是这样,因为Capistrano故意避免安装它即将使用的宝石组是没有意义的。)
作为旁注,我还在application.rb
中注意到这一行:
Bundler.require(*Rails.groups(:assets => %w(development test)))
我假设application.rb
中的任何内容都不会影响bundle install
,因为Rails不会为此启动。但如果这条线与我的问题有关,请纠正我。
答案 0 :(得分:1)
--without
选项,在项目目录/服务器上检查文件.bundle/config
它可能已经包含这样的内容:
---
BUNDLE_WITHOUT: assets