現在の Railsアプリの URL は、
http://localhost:3000/ から始まり、
次に books などの中身が続きます。
ただ、
1つのサーバー上で複数の Railsアプリを共存させたいケースでは、
それぞれのアプリを区別する仕組みが必要です。
一般には、「サブディレクトリ」を追加します。
以降、/book_mgmt に設定したいものとして説明します。
変更後の URL は、
http://localhost:3000/ から
http://localhost:3000/book_mgmt/ に変わります。
一般的なのが、relative_url_root で設定する方法です。
PowerShell のプロンプトで
$Env:RAILS_RELATIVE_URL_ROOT = "/book_mgmt"
と入力します。
Railsガイドではここまでの説明しかありませんが、
記載現在、次に説明するコード変更も入れないと動作してくれないようです。
relative_url_root に加えて、
\config.ru の
run Rails.application
を
map ActionController::Base.config.relative_url_root || "/" do
run Rails.application
end
に書き換えます。
参考リポジトリ: https://github.com/Bonv-dev/book_mgmt/commit/4cb95f9
ただし、
RAILS_RELATIVE_URL_ROOT を設定すると、
自動テストが失敗するようになります。
よって、
本番環境でのみ設定するようにします。
ちなみに、
Railsガイドでは、
\config\application.rb に
config.relative_url_root = "/book_mgmt"
を追記する方法も書かれていますが、
このままだと自動テストが失敗するので、
config.relative_url_root = "/book_mgmt" unless Rails.env.test?
のほうがいいかもしれません。