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 助手时,rails 给出了错误的相对路径。

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

/travels/

正确的结果将是

/ror/travels/

url helper 和其他具有相对 url 的 helper 的想法很好。我打算使用它们。如何为 rails 设置正确的根路径以在 helper 中使用?

4

1 回答 1

0

如果您使用的是 rails 4,您可以在代理声明之前添加以下内容:

ProxyRequests Off
ProxyPreserveHost On

并添加 retry=0 以允许 Rails 服务器重新启动

ProxyPass /rorhttp://localhost:3000/ror重试=0

在 config.ru

map "/ror"
运行 Rails.application
end

map "/"
运行 Rails.application
end

在 config/application.rb
添加这一行:

config.action_controller.relative_url_root = "/ror"

请注意,这将引导所有网址:

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

记得使用 link_to 或 root_url 通过 baseuri /ror 获取 uri

于 2013-07-03T19:50:41.243 回答