

この辺で事故ったのと、「Rails5+サブディレクトリ+アセットパイプライン」(の検索単語)に関する記事がグーグルにはあまりなかったので軽いメモ。
同じような問題を受けた人の助けになれば。
個人でアプリ開発をする場合、一つのサーバーに複数のRailsアプリを詰め込むことがよくあるのですが、そうすると、アドレス直下ではなく、何らかのフォルダの下にRailsアプリを置いていくわけになるのですよね。
そんなときは「config.ru」にて、以下のように記述することで、サブディレクトリで起動できるようにするわけなのですが、
RAILS_RELATIVE_URL_ROOT='/XXXXXXXXXXX'
require_relative 'config/environment'
if RAILS_RELATIVE_URL_ROOT then
map RAILS_RELATIVE_URL_ROOT do
run Rails.application
end
else
run Rails.application
end
(「XXXXXXXXXXX」は任意のサブディレクトリの名前)
これだけだと、アセットパイプライン(asset)のアドレスが変更されていないので、scss(Sass)やcssファイルが反映されないのですよね(正確には読み込めない)。
生成されたcssファイルを直接見ると「Not Found」になります。
それもそのはず。
/XXXXXXXXXXX/assets/application.self ~
にファイルが作られているにも関わらず、
読み込んでいるのは、
/assets/application.self ~
ですから。
この問題を解決するためには、
「config/environments/development.rb」の「Rails.application.configure do」内部で、
ENV["RAILS_RELATIVE_URL_ROOT"] = "/XXXXXXXXXXX"
Rails.application.config.relative_url_root = "/XXXXXXXXXXX"
といった宣言が必要になります。
また、デプロイ後にも対応が必要なので「production.rb」の方もいじる必要があるのでお忘れずに。
以上、ちょっとしたトラブル解決法でした。
この内容でよくわからなかったら、この記事にあるワードで検索してみてね。
( ・ω・)ノ










