2017-03-14 9 views
0

とレールのドメインの制約を使用して、私はこれがローカルに完璧に動作Herokuのサブドメイン

Rails.application.routes.draw do 
    constraints subdomain: 'admin' do 
    devise_for :admin_users, ActiveAdmin::Devise.config 
    ActiveAdmin.routes(self) 
    end 

    namespace :api, defaults: { format: :json }, 
      constraints: { subdomain: 'api' }, path: '/' do 

    scope module: :v1, 
      constraints: ApiConstraints.new(version: 1, default: true) do 
     resources :countries, only: [:show, :index] 
    end 

    end 
end 

routes.rbをでそのように構成された2つのサブドメインとレールのアプリを持っています。マイの/ etc/hosts

admin.localhost.local localhost 
api.localhost.local localhost 

のように見えます。しかし、それはHerokuのでこれを構成するために来るときになって、物事は動作しません。

私はこのようなことに私のDNSとHerokuののカスタムドメインを設定した:

admin.my_project.my_domain.com -> admin.my_project.my_domain.com.herokudns.com 
api.my_project.my_domain.com -> api.my_project.my_domain.com.herokudns.com 

をしかし、私はhttp://admin.my_project.my_domain.comにアクセスしたとき、私は404

とログがこれを持っているルーティングエラーが表示されます。

heroku[router]: at=info method=GET path="/" host=admin.my_project.my_domain.com request_id=XXX fwd="IP.IP.IP.IP" dyno=web.1 connect=0ms service=3ms status=404 bytes=1744 protocol=http 
app[web.1]: INFO -- : Started GET "/" for IP.IP.IP.IP at 2017-03-14 
app[web.1]: FATAL -- : ActionController::RoutingError (No route matches [GET] "/"): 

リクエストを受け取ったときに、Railsはそのことを知りませんサブドメインから来ている。

どうすればこの作品を作成できますか? ありがとう

答えて

0

私はそれを解決しました。

私はサブドメインが適切に選択されるように設定/環境/ production.rb

config.action_dispatch.tld_length = 2 

にこれを追加する必要がありました。

関連する問題