Rails应用程序在子目录中

meb*_*ace 13 ruby ruby-on-rails

尝试在子目录中设置Rails应用程序.我的服务器是切诺基.我有一个基本网址:www.nonsense.com,这是一个wordpress博客,我希望在www.nonsense.com/rails_app中设置一个rails应用程序.

谷歌的快速扫描促使我使用:的ActionController :: AbstractRequest.relative_url_root ="/ rails_app"

但是,它似乎已在最新的Rails中删除.关于Rails 2.3.8中的等价物的任何想法?

Sea*_*bry 9

对于Rails的4/5,可以设置这application.rbproduction.rb:

config.relative_url_root = "/app1"
Run Code Online (Sandbox Code Playgroud)

或者只是设置此环境变量:

RAILS_RELATIVE_URL_ROOT='/app1'
Run Code Online (Sandbox Code Playgroud)

但是,我发现这只是资产路径的前缀.url帮助程序创建的URL路径不遵循此设置.

事实证明,有一个与此相关的错误:https://github.com/rails/rails/issues/5122

这应该是修复它,但我没有发现是这样的:https: //github.com/rails/rails/pull/18775/files

该功能的文档不清楚它应该如何工作:

http://edgeguides.rubyonrails.org/configuring.html#deploy-to-a-subdirectory-relative-url-root

也许尝试使用命名空间:http:
//guides.rubyonrails.org/routing.html#controller-namespaces-and-routing

这个答案可能也会有所帮助:
在Apache下的子目录中配置Rails 4应用程序以进行生产


Geo*_*tte 7

您想立即在环境文件中使用它:

config.action_controller.relative_url_root = '/rails_app'
Run Code Online (Sandbox Code Playgroud)

资料来源:http://edgeguides.rubyonrails.org/configuring.html