在面向公众的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已经很久以前改变了:
所以在environment.rb(或初始化程序)中你可以设置config.action_controller.relative_url_root = ENV [‘RAILS_RELATIVE_URL_ROOT’]