Субдомены и локально установленное приложение Rails - PullRequest
10 голосов
/ 30 января 2010

Я не могу понять, что я пропускаю, возможно, это очевидно или непонимание.

Приложение, с которым я работаю, использует субдомены, которые на сервере хостинга работают правильно. Я полагал, что локальная установка вызовет некоторые проблемы с маршрутизацией, поэтому я прочитал о внесении изменений в / etc / hosts и использовании гема Ghost. Оба, кажется, работают хорошо, то есть localhost: 3000 / становится myapp.local: 3000, но я не понимаю, как выполнить вход в учетную запись субдомена. Вот пример ...

  • myapp.local: 3000 / session / new = страница входа по умолчанию для приложения
  • myapp.local: 3000 / signup = страница регистрации по умолчанию
    • Я могу создать учетную запись здесь, например. Sub1
    • Страница благодарности показана со ссылкой на sub1.myapp.com, который указывает на размещенное приложение (локальный БД также показывает этот домен)
  • sub1.myapp.local добавлен вручную в / etc / hosts и dscacheutil -flushcache
  • sub1.myapp.local: 3000 / сеанс / новый - поддомен
    • попытки входа возвращают, что это не допустимый домен. Кажется, это имеет смысл, потому что локальная база данных показывает URL-адрес как sub1.myapp.com на хост-сервере.

Итак, мой вопрос: есть ли местный обходной путь, который я могу использовать для разработки, или я полностью пропустил фундаментальную концепцию?

Ответы [ 2 ]

11 голосов
/ 30 января 2010

Вы можете просто попытаться поместить фактическую точку com в файл / etc / hosts.

е:

127.0.0.1 sub1.myapp.com
127.0.0.1 myapp.com
127.0.0.1 anyothersubdomains.myapp.com

Обычно это заставляет ваш компьютер думать, что он является хостом для всех, поэтому вы больше не можете переходить на реальный сайт в веб-браузере.

если вы хотите, чтобы он был .local, предположительно, чтобы вы могли ссылаться на настоящий онлайн-сайт, работая над локальной копией, вам, вероятно, следует взглянуть на app / controllers / application_controller.rb (иногда application.rb ) и искать там логику, которая помогает определить, что делать в зависимости от субдомена. может быть, он жестко запрограммирован, чтобы искать только .com или что-то еще.

1 голос
/ 31 мая 2016

Если вы используете сервер webrick или что-то вроде Puma для разработки, вы можете использовать lvh.me для доступа к своим поддоменам. например,

http://sub.lvh.me:3000/

http://lvh.me:3000/ равно http://localhost:3000/

...