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 helper时,rails会给出错误的相对路径。
<%= url_for(:action => 'index', :controller => 'travels' %>
给出
/travels/
正确的结果将是
/ror/travels/
url helper和其他帮助器与相对url的想法很好。我打算用它们。 如何为帮助程序中的rails设置正确的根路径?
答案 0 :(得分:0)
如果您使用的是rails 4,则可以在代理声明之前添加以下内容:
ProxyRequests Off ProxyPreserveHost On
并添加retry = 0以允许rails服务器重新启动
ProxyPass / ror
http://localhost:3000/ror
重试= 0
在config.ru中
map“/ ror”做 运行Rails.application
端地图“/”做
运行Rails.application
结束
在config / application.rb中 添加以下行:
config.action_controller.relative_url_root =“/ ror”
请注意,这将引导所有网址:
http://domain.com/ror
至http://localhost:3000/ror
记得使用link_to或root_url来获取uri with baseuri / ror