目的
Padrinoでアプリを作成する場合に、 development環境では「localhost/」で動かしたいけど、production環境では「mydomain.com/projectname/」で動かしたい場合の対応方法
app.rbを修正
app/app.rbに以下を追加します。
app.rb
// production環境ではコンテキストパスを「projectname」にする
configure :production do
ENV['RACK_BASE_URI'] = '/projectname'
end
この記述をしておくと、 bundle exec padrino s -e production
した場合に
url_for
等を使用した場合に、pathの先頭に「/projectname」を付与してくれます。
jsで使用する場合
APIをjsから使用している場合はHTMLに以下みたいなのを埋め込んでおいて、jsでURLを組み立てる際に使用すればいいと思います。
html
<input type="hidden" id="contextpath" value="<%= ENV['RACK_BASE_URI'] %>" />