Capistrano + Asset Pipeline + Rails sub app


Rails Application をルートではなく、サブディレクトリに複数並べて動作させている場合の設定の仕方。

Rails 側は、環境ごとの設定になるはずなので、environments 側に書く(ここでは、Production)。

production.rb
ENV['RAILS_RELATIVE_URL_ROOT'] = "/hoge"

これだけでもある程度はうまくいくが、Asset を Precompile してできたもの(CSS とか JavaScript とか) に image-url などを利用している場合、そこにサブディレクトリの設定が適用されない。

ここを動作させるためには、deploy.rb を変更する。

deploy.rb
set :asset_env, "RAILS_GROUPS=assets RAILS_RELATIVE_URL_ROOT='/hoge'"