【问题标题】:Rails app in a subdirectory子目录中的 Rails 应用程序
【发布时间】:2011-03-22 06:48:55
【问题描述】:

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

对 google 的快速浏览让我使用了:ActionController::AbstractRequest.relative_url_root = "/rails_app"

但是,似乎这已在最新的 Rails 中被删除。关于 Rails 2.3.8 中的等价物有什么想法吗?

【问题讨论】:

  • 您需要做的第一件事是配置您的 Wordpress 托管网络服务器,以将您的“子”URL 定向到 Rails 应用程序服务器。这个问题的答案将取决于您正在运行的服务器以及您如何部署它们。请提供有关您的环境的更多详细信息
  • 啊,注意到了。它已经配置好了。 www.nonsense.com/ 正确地导致了我正常运行的 WP 安装。 www.nonsense.com/rails_app 指向我的 rails 应用程序,但我收到“此页面不存在”错误。当应用程序在根目录中时不会发生这种情况,只有在子目录中时才会发生,所以我认为它必须处理 relative_url_root。

标签: ruby-on-rails ruby


【解决方案1】:

对于 Rails 4/5,您可以在 application.rbproduction.rb 中设置:

config.relative_url_root = "/app1"

或者简单地设置这个环境变量:

RAILS_RELATIVE_URL_ROOT='/app1'

但是,我发现这只会为资产的路径添加前缀。由 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

这个答案也可能有帮助:
Configuring a Rails 4 app for production in a subdirectory under Apache

【讨论】:

  • 我也遇到了同样的问题,RAILS_RELATIVE_URL_ROOT 好像还是坏了。
【解决方案2】:

你现在想在你的环境文件中使用它:

config.action_controller.relative_url_root = '/rails_app'

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-04
    • 1970-01-01
    • 2011-11-15
    相关资源
    最近更新 更多