2010-01-30 20 views
10

Nie mogę określić, co przeoczyłem, być może jest to oczywiste lub niezrozumiałe.Subdomeny i lokalnie zainstalowana aplikacja Railsy

Aplikacja, z którą pracuję, korzysta z subdomen, które na serwerze hostingowym działają poprawnie. Pomyślałem, że instalacja lokalna wywołałaby kilka problemów związanych z routingiem, więc przeczytałem o wprowadzaniu zmian w/etc/hosts i korzystaniu z gem Ghost. Oba wydają się działać dobrze, np. Localhost: 3000/staje się myapp.local: 3000, ale nie rozumiem, jak logować się do konta subdomeny. Oto przykład ...

  • myapp.local: 3000/sesji/new = domyślna strona logowania do aplikacji
  • myapp.local: 3000/zarejestruj = domyślna strona zarejestruj
    • mogę załóż konto tutaj, np Sub1
    • z podziękowaniem strona jest pokazana w/w odniesieniu do sub1.myapp.com co wskazuje na obsługiwanej aplikacji (lokalny db pokazuje tę domenę a)
  • sub1.myapp.local ręcznie dodane do/etc/hosts i dscacheutil -flushcache
  • sub1.myapp.local: 3000/sesji/nowy jest subdomeny
    • próby logowania zamian, że to nie jest ważna domena. Wydaje się to mieć sens, ponieważ lokalna baza danych pokazuje adres URL jako sub1.myapp.com na serwerze hostingowym.

Więc moje pytanie brzmi, czy istnieje lokalny obejście, które można używać dla rozwoju albo ja całkowicie brakowało zasadniczą koncepcję po drodze?

+0

Jeśli sub1.myapp.local odpowiada, wiesz HOSTS są prawidłowo skonfigurowane. Wygląda na to, że coś nie jest przechowywane w * rzeczywistej * domenie, która była używana, lub istnieje ustawienie konfiguracyjne dla domeny głównej. – wesgarrison

Odpowiedz

11

możesz po prostu chcieć spróbować umieścić rzeczywistą kropkę com w swoim pliku/etc/hosts.

tj:

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

co zwykle robi to oszukać komputer do myślenia, że ​​jest gospodarzem wszystkich tych, więc nie można przejść do rzeczywistego miejscu już w przeglądarce internetowej.

jeśli chcesz, aby był .local, prawdopodobnie po to, abyś mógł odwołać się do prawdziwej strony internetowej podczas pracy nad lokalną kopią, prawdopodobnie powinieneś rzucić okiem w aplikacji/controllers/application_controller.rb (czasami aplikacja. rb) i szukaj tam logiki, która pomaga określić, co zrobić w zależności od subdomeny. być może jest to zakodowane tylko po to, by szukać tylko .com lub czegoś.

+0

Święta krowa spotman! to tylko obejście, którego szukałem ... Próbowałem go i działa np.Mogę uzyskać lokalny dostęp do aplikacji, ale nie mogę przejść do domeny publicznej, która jest na razie tolerowana. Jedyne czego naprawdę potrzebowałem na teraz to zapewnienie, że mogę uruchomić go lokalnie. Przeglądając application.rb wydaje się, że jest trochę funky przekierowującej logiki. Chyba dodam to do mojej listy rzeczy do nauczenia. Dzięki za twoją pomoc ... to mnie zaskoczyło przez ostatni dzień lub dwa. – Shawn

1

Jeśli używasz serwera Webrick lub coś w rodzaju Puma do rozwoju, możesz użyć lvh.me, aby uzyskać dostęp do swoich subdomen. na przykład

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

http://lvh.me:3000/ jest równa http://localhost:3000/

Powiązane problemy