目前我有myapp.herokuapp.com作为我正在工作的一个小项目的分期。一旦完成,它将运行在myapp.com下。
当我在本地运行它时,我使用lvh。我:3000来测试东西。这很好地解决了我遇到的问题,但是由于这个暂存环境在子域下,我遇到了路由问题。
问题是我的用户得到了一个自定义子域,因此,someuser.myapp.com指向user# landing。我通过以下路由在本地完成:
match '', to: 'users#landing', constraints: lambda { |r| r.subdomain.present? && r.subdomain != 'www' }
我的问题是,当我访问myapp.herokuapp.com时,我最终击中users#landing而不是我的root。
我脑子一片空白
完全忽略了我在做什么…
我结束了,
if request.subdomain == 'myapp'
redirect_to root_url
else
解决了这个问题。我相信一定有更好的办法。
编辑:此外,我在application_controller.rb中添加了default_url_options
def default_url_options
if Rails.env.production?
{:host => 'myapp.herokuapp.com'}
else
{:host => 'lvh.me'}
end
end