rails サブディレクトリでの公開

自宅用に個人的にrailsアプリを書いていたのだが。。
開発しているときは、単に

%rails s

として、urlにhttp://hogehoge:3000/などとアクセスしてた訳です。。
ある程度開発完了したので、productionとして稼働させ、自宅で稼働しているnginxに組み込まなければならない訳です。。
nginx経由で動作しているものがいくつかあるので、http://hogehoge/rails-hogehogeとかして
サブディレクトリを使いたい訳です。
proxy-passしてrewriteすればいいかと安易に考えてたのが失敗。。。

location /rails-hogehoge {
  rewrite ^/rails-hogehoge/(.*) /$1 break;
  proxy-pass http://localhost:4000;

よく考えたら、レスポンス内のデータのパスが。。。。
当たり前なんだが。

ってなわけで、このあたりを調べると、サブディレクトリなんてをキーワードに引っ掛けるとヒットします。
unicornで–path設定をするのが楽チンかと思ったが、assetsディレクトリはそのままだった。。

いくつか情報をもとにやってみたが、完璧なものはないような感じ。

結局。。。
config/routesにscopeを導入して今までのroute定義をまるっと、かっこちゃいました。
開発も本番も同じURLアクセスになります。

 scope "hogehoge" do
   ... 今までの定義
 end

asseetsディレクトリ問題は残ってしまう。。。
これは、config/application.rbファイルに下記を追加してかわす事に。。。

 config.assets.perfix = '/hogehoge/assets'

自作プログラム内のパスを書き換えなきゃならんが、あまり使っていなかったので、手間は少なかった。
という訳で手抜きで対応しました。

サブディレクトリを考慮したものも今後、修正、追加されるんでしょう。。。。