我正在尝试使用Apache和Phusion Passenger为Sinatra应用程序设置服务器。
问题是,服务器应该从子URI(比如example.com/example)提供服务,而基本URI(example.com)是从另一台机器提供的,它只是指向/示例到服务器我正在建立。
我知道在Passenger的子URI下设置基于Rack的应用程序的常用方法 RackBaseURI指令和DocumentRoot中的符号链接与子URI同名,但是他假定base-URI指向您在同一台机器上运行的另一个站点。我已经在测试服务器上成功设置了它。
但我无法让Passenger告诉Sinatra它在example.com/example下运行,因此所有链接(使用url()帮助程序)仍然生成为例如example.com/images而不是example.com/example/images。
除了通过Passenger之外,还有其他方法可以做到这一点,比如隐藏的环境变量还是什么?我不想指出我的所有链接,因为它可能会在未来部署到其他地方。当然必须有更好的方法吗?