㊙️
Chromeでlocalhostのサブドメインが使えるってよ
1つのRailsアプリ内で複数ドメインのサービスを動かしたい時、皆さんはどうやって開発しますか?
自分なら、ローカル環境で任意のドメインにアクセスできるように環境を作るところから始めます。
ホストPCのDNSの設定は変えたくないな〜と思いながら、Dockerだけでドメイン設定ができないだろうかと試行錯誤していました。
その時、大変な事を発見しました...!!!!
Chromeだと、DNSの設定とかせずに localhost のサブドメインにアクセスできる!!
なんだって〜〜〜〜!!!
衝撃すぎていままでDockerで頑張ってた設定は全部なかったことにしました。
どういうこと?
普段皆さんは、ブラウザで localhost:3000
にアクセスして動作確認しますよね。
その localhost
のサブドメインが使えるんですよ!!!
例えば kanahebi.localhost:3000
とかも設定なしでアクセスできちゃうんです。
アクセスしてみると localhost:3000
と同じものが表示されませんか?
手元で localhost
が動いている人はチョット試してみてください。
「え!」とか「うお!!」とか声が出ませんでしたか?
出た方はこっそり教えてくださいねw
その仕組みを使ってドメイン別のルーティングをしてみます
config/routes.rb
Rails.application.routes.draw do
constraints domain: 'blog.localhost' do
root "articles#index", as: :blog
resources :articles
end
constraints domain: 'sns.localhost' do
root "sns#index", as: :sns
end
constraints domain: 'task.localhost' do
root "tasks#index", as: :task
end
end
root
を各ドメインで設定したい場合は、 as: :hogehoge
のようにルーティングの名前を指定する必要があるので注意が必要です。
ちなみに
Chrome以外にも、FirefoxやEdgeでも同じ使い方ができるようです!
Safariではできませんでした😢
最後に
株式会社mofmofの「水曜日の個人開発」という取り組みの中でアプリを作っている時に、この超絶便利技を見つけました。
皆さんも超絶便利技を見つけた際にはこっそり教えてくださいね!!
Discussion