在使用Passenger 尝试失败后(请参阅我的另一个问题),我设法通过子文件夹中的反向代理运行了rails。
我添加了线条
config.relative_url_root = "/App"
config.action_controller.relative_url_root = "/App"
到我的环境。现在我可以在 www.mySite.com/App 下访问我的 rails 项目。问题是链接/路径没有添加前缀“/App”。所以“用户”的链接看起来像
www.mySite.com/users
而不是 www.mySite.com/App/users
.我怎样才能改变这个?
至少根据 http://edgeguides.rubyonrails.org/configuring.html#deploy-to-a-subdirectory-relative-url-root我做的一切都是正确的。
最佳答案
我通过如下调整我的反向代理和我的 rails 配置让它工作。
这是我对应的 apache 文件:
<VirtualHost *:80>
DocumentRoot /path/to/App/public
ProxyPass /App http://127.0.0.1:9292/App
ProxyPassReverse /App http://127.0.0.1:9292/App
</VirtualHost>
我的 config.ru 看起来像这样:
require ::File.expand_path('../config/environment', __FILE__)
map '/App' do
run Rails.application
end
提到的环境变量在/config/environment.rb 中设置。我不确定是否仍然需要它们:
config.relative_url_root = "/App"
config.action_controller.relative_url_root = "/App"
ENV['RAILS_RELATIVE_URL_ROOT'] = "/App"
ENV['ROOT_URL'] = "/App"
关于ruby-on-rails - Rails relative_url 不调整链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27761278/