2010-01-30 3 views
10

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

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

  • myapp.local: 3000/сессии/новый = страница по умолчанию Войти для приложения
  • myapp.local: страница регистрации 3000/регистрация = по умолчанию
    • я могу создайте учетную запись здесь, например, Sub1
    • благодарственных страница отображается ж/ссылки на sub1.myapp.com, который указывает на размещаемое приложение (локальная БД показывает этот домен, а)
  • sub1.myapp.local вручную добавлены/и т.д./хосты и dscacheutil -flushcache
  • sub1.myapp.local: 3000/сессия/новый является субдомен
    • попытки входа в систему возврата, это не является допустимым домена. Это, по-видимому, имеет смысл, потому что локальный db показывает url как sub1.myapp.com на сервере хостинга.

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

+0

Если sub1.myapp.local отвечает, вы знаете, что ваши HOSTS настроены правильно. Похоже, что что-то не хранит домен * * *, который был использован, или есть настройка конфигурации для корневого домена. – wesgarrison

ответ

11

вы можете просто попытаться положить фактический 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 (иногда приложение. rb) и искать там логику, которая помогает определить, что делать в зависимости от субдомена. возможно, его жестко закодированы, чтобы искать только .com или что-то в этом роде.

+0

Святая корова пятно! это только обходной путь, который я искал ... Я попробовал, и это работает, например.Я могу получить доступ к приложению локально, но не могу перейти в общедоступное доменное пространство, которое в настоящее время является допустимым. На самом деле все, что мне действительно нужно, это обеспечить, чтобы я мог запускать его локально. Просматривая application.rb, похоже, есть немного фанк-логики перенаправления. Полагаю, я добавлю это в свой список вещей, чтобы учиться. Спасибо за вашу помощь ... это заставило меня затормозить последние два или два дня. – Shawn

1

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

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

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

Смежные вопросы