ruby-on-rails-3 – RoR3重定向不包括RAILS_RELATIVE_URL_ROOT

在面向公众的Apache2服务器上,通过子URI访问我的Rails 3应用程序

https://www.myserver.com/myapp/controller...

该服务器配置为反向代理到另一个通过Passenger托管Rails应用程序的Apache2服务器:

http://intranet.server.com/myapp

在我的Intranet服务器的VirtualHost设置中

SetEnv RAILS_RELATIVE_URL_ROOT "/myapp"

在我的config / environments / production.rb文件中,我取消注释了该行

config.log_level = :debug

这样,我的应用程序中的第一个执行方法问题:

logger.debug { "The environment variable RAILS_RELATIVE_URL_ROOT is presently #{ENV['RAILS_RELATIVE_URL_ROOT']}" }

当然,在生产日志文件中,您会看到:

The environment variable RAILS_RELATIVE_URL_ROOT is presently /myapp

但是,日志中的下一行显然是浏览器的内容:

Redirected to https://www.myserver.com/controller/action

我在Stackoverflow上了解了这个环境变量,所以这是一个为它工作的人,但另一个人说它不是另一个人说的.所以根据我的经验,我们现在处于平局.我错过了什么吗?

最佳答案 据我所知,能够直接使用ENV var已经很久以前改变了:

https://rails.lighthouseapp.com/projects/8994/tickets/1946-setting-a-relative-root-url-via-a-web-server-not-possible-anymore

所以在environment.rb(或初始化程序)中你可以设置config.action_controller.relative_url_root = ENV [‘RAILS_RELATIVE_URL_ROOT’]

点赞