Поддомены и локально установленное приложение Rails
Я не могу понять, что я упускаю из виду, возможно, это очевидное или непонимание.
В приложении, с которым я работаю, используются субдомены, которые на сервере хостинга работают правильно. Я решил, что локальная установка вызовет некоторые проблемы вокруг маршрутизации, поэтому я прочитал об изменениях в /etc/hosts и использовании жемчужины Ghost. Оба, кажется, работают нормально, то есть localhost: 3000/становится myapp.local: 3000, но я не понимаю, как идти на вход в учетную запись поддомена. Вот пример...
- myapp.local: 3000/session/new = страница входа в систему по умолчанию для приложения
- myapp.local: 3000/signup = стандартная страница регистрации
- Я могу создать учетную запись здесь, например. Sub1
- Страница с благодарностью показана с ссылкой на sub1.myapp.com, которая указывает на размещенное приложение (локальный db также показывает этот домен).
- sub1.myapp.local вручную добавлен в /etc/hosts и
dscacheutil -flushcache
- sub1.myapp.local: 3000/session/new - это субдомен
- попытки входа возвращаются, что это недопустимый домен. Это, по-видимому, имеет смысл, потому что локальный db показывает url как sub1.myapp.com на сервере хостинга.
Итак, мой вопрос заключается в том, существует ли локальное обходное решение, которое я могу использовать для разработки, или я полностью пропустил фундаментальную концепцию на этом пути?
Ответы
Ответ 1
вы можете просто попытаться поместить фактический dot com в файл /etc/hosts.
т
127.0.0.1 sub1.myapp.com
127.0.0.1 myapp.com
127.0.0.1 anyothersubdomains.myapp.com
то, что это обычно делает, обманывает ваш компьютер, думая, что он является хозяином всех этих, поэтому вы больше не можете перейти на настоящий сайт в веб-браузере.
если вы хотите, чтобы он был .local, предположительно, чтобы вы могли ссылаться на настоящий онлайн-сайт во время работы над локальной копией, вам, вероятно, следует взглянуть в приложении/контроллерах/application_controller.rb(иногда application.rb ) и искать там логику, которая помогает определить, что делать в зависимости от субдомена. может быть, его жестко закодированы, чтобы искать только .com или что-то в этом роде.
Ответ 2
Если вы используете сервер webrick или что-то вроде Puma для разработки, вы можете использовать lvh.me для доступа к вашим поддоменам. например.
http://sub.lvh.me:3000/
http://lvh.me:3000/
равно http://localhost:3000/