rails 如何知道它是否在子路径下运行?

How does rails know if it runs under a subpath?

我想在 https://server.com/myapp/testing 上 运行 一个 rails 应用程序。如果我说 redirect_to '/bla',我希望它重定向到 /myapp/testing/bla。我如何告诉 rails,它应该在所有路径前加上 /myapp/testing?

I'运行ning rails 5 和 passenger with apache httpd.

docs 中所述,您可以通过在 config/application.rb[=15] 中添加此行,将 rails 应用配置到子目录中的 运行 =]

config.relative_url_root = '/myapp/testing'

这将有助于 rails 生成适当的路线。

您可能还需要根据此配置您的乘客配置docs

编辑:根据@le_me 的建议,乘客必须设置 RAILS_RELATIVE_URL_ROOT 才能将前缀传达给 rails 应用程序。