如何配置托管在 heroku 上的 rails 应用程序(尤其是路由)以通过使用子目录的 nginx 代理运行?

How to configure rails app (especially routing) hosted on heroku to run via an nginx proxy which uses a subdirectory?

提问人:Ravi Bhusal 提问时间:10/9/2023 最后编辑:Ravi Bhusal 更新时间:10/9/2023 访问量:49

问:

我有一个托管在 heroku 上的 rails 应用程序,其网址类似于 .我的公司要求它能够指向该 heroku 实例。exampleapp.herokuapp.comcompanydomain.com/exampleapp

配置如下

在:config/application.rb

config.action_controller.relative_url_root = "/exampleapp"

config/environements/*.rb

config.assets.prefix = /exampleapp/assets

对于路由,我已将它们范围限定为如下所示的可选参数

Rails.application.routes.draw do
   scope '(:prefix)' do
      # routes
   end
end

而在application_controller.rb

def default_url_options
    {prefix:  'exampleapp'}
end

这将使应用程序在前缀和无前缀的 url 中都可用。例如:和都可以正常工作,任何其他前缀也可以。/login/exampleapp/login

我想这并不重要。但是我想知道这是否是正确的方法?

Rails 版本: Ruby 版本6.1.42.7.2

ruby-on-rails nginx heroku 托管 子目录

评论


答: 暂无答案