0

Rails バージョン: 3.2
既存の PHP サイトがあり、そこに Rails を使用して新しい機能を追加したいと考えています。

最後のゴールは、サイト全体を Rails に移行することです。そのため、mod_proxy を使用してサブパスで Rails を統合することにしました: /ror

ここに私の mod_proxy 設定があります:

<Proxy *>
  Order deny,allow
  Allow from all
</Proxy>
ProxyPass /ror http://localhost:3000/
ProxyPassReverse /ror http://localhost:3000/

問題は、url ヘルパーを使用しようとすると、レールが間違った相対パスを与えることです。

<%= url_for(:action => 'index', :controller => 'travels' %>

与える

/travels/

そして正しい結果は

/ror/travels/

URL ヘルパーや相対 URL を使用するその他のヘルパーのアイデアは優れています。私はそれらを使用するつもりです。ヘルパーで使用するレールの正しいルート パスを設定するにはどうすればよいですか?

4

1 に答える 1

0

Rails 4 を使用している場合は、プロキシ宣言の前に追加できるものを次に示します。

ProxyRequestsオフ
ProxyPreserveHost オン

そして retry=0 を追加して、Rails サーバーを再起動できるようにします

ProxyPass /ror http://localhost:3000/rorretry=0

config.ruで

map "/r" do
run Rails.application
end

map "/" do
run Rails.application
end

config/application.rb
に次の行を追加します。

config.action_controller.relative_url_root = "/ror"

これにより、次のすべての URL がリダイレクトされることに注意してください。

http://domain.com/rorhttp://localhost:3000/ror

baseuri /ror で uri を取得するには、link_to または root_url を使用することを忘れないでください

于 2013-07-03T19:50:41.243 に答える