devise (members, company_users 등)를 사용하는 몇 가지 유형의 사용자를 정의했으며 각 유형의 로그인 페이지에 다른 하위 도메인을 사용하고 싶습니다.heroku에서 작동하지 않는 하위 도메인 라우팅
하위 도메인 일치를 구현하고 적절한 동작으로 리디렉션하기 위해 this railscast을 참조했습니다.
devise_for :company_users, :controllers => { :registrations => 'company_users/registrations', :sessions => 'company_users/sessions' }
devise_scope :company_user do
constraints Subdomain do
match '/' => 'company_users/sessions#new'
end
end
그리고 내 lib/subdomain.rb
파일 : 내 routes.rb
파일은 다음과 같습니다
class Subdomain
def self.matches?(request)
request.subdomain.present? and request.subdomain =~ /\Acompanies\z/
end
end
로컬, 그것은 완벽하게 작동합니다. 필자는 회사를 이용하여 테스트했는데, 같은 railscast가 암시 하듯이 .lvh.me:3000이며 실제로 올바른 로그인 페이지로 리디렉션됩니다.
Heroku에서 작동되도록하려면 heroku domains:add companies.mydomain.com
을 사용하여 도메인을 추가하고 내 DNS 서버에 Heroku 응용 프로그램을 가리키는 새 CNAME 레코드를 추가했습니다.
그러나 enterprises.mydomain.com에 액세스하려고하면 올바른 로그인 페이지가 아닌 루트 경로로 리디렉션됩니다. 나는 무슨 일이 일어나고 있는지 알 수 없다. 어떤 도움을 주시면 감사하겠습니다.
도메인의 영웅 도메인과 동일한 도메인 이름이 있습니까? 내 .com.br이고 config.action_dispatch.tld_length = 2를 production.rb에 추가하지 않고 Rails가 서브 도메인을 잘못 결정 했으므로 동일한 동작이 발생했습니다. –
흠, 의견을 보내 주셔서 감사합니다! 나는 그것이 될 수있을 것 같아 (내 tld도 br :) :)). 작동하는 경우, 귀하의 의견을 답변으로 바꾸어달라고 요청할 것입니다. – Renan
@ 카두 (Kadu) : 귀하의 의견을 답변으로 변환하십시오.이 솔루션은 최소한 나를 위해 일했으며 upvoted되어야합니다. 도움을 주셔서 감사합니다! – fatty