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