Поддомены и локально установленное приложение 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/