2010-01-30 4 views
10

Ich kann nicht herausfinden, was ich übersehe, vielleicht ist es offensichtlich oder Mangel an Verständnis.Subdomains und lokal installierte Rails App

Die App, mit der ich arbeite, verwendet Subdomänen, die auf dem Hosting-Server ordnungsgemäß funktionieren. Ich dachte mir, dass die lokale Installation einige Probleme im Zusammenhang mit dem Routing mit sich bringen würde, also habe ich nachgedacht, Änderungen an/etc/hosts vorzunehmen und das Ghost-Juwel zu verwenden. Beide scheinen gut zu funktionieren, d. H. Localhost: 3000/wird myapp.local: 3000, aber ich verstehe nicht, wie man sich in ein Subdomain-Konto einloggt. Hier ist ein Beispiel ...

  • myapp.local: 3000/session/new = die Standardanmeldeseite für die App
  • myapp.local: 3000/Anmeldungen = default Anmeldeseite
    • ich kann Erstelle hier einen Account zB Sub1
    • Die danke Seite wird w/der Verweis auf sub1.myapp.com gezeigt, die auf die gehostete Anwendung Punkte (die lokale db zeigt diese Domain auch)
  • sub1.myapp.local manuell hinzugefügt/etc/hosts und dscacheutil -flushcache
  • sub1.myapp.local: 3000/session/neu ist die Sub-Domain
    • Anmeldeversuche zurückgeben, dass dies keine gültige Domäne ist. Dies scheint sinnvoll zu sein, da die lokale Datenbank die URL als sub1.myapp.com auf dem Hosting-Server anzeigt.

So ist meine Frage, ob eine lokale Problemumgehung gibt es, dass ich für die Entwicklung nutzen kann oder habe ich völlig verfehlt ein grundlegendes Konzept auf dem Weg?

+0

Wenn sub1.myapp.local reagiert, wissen Sie sind Ihre HOSTS richtig eingerichtet ist. Es sieht so aus, als würde etwas die * tatsächliche * Domain nicht speichern, die verwendet wurde, oder es gibt eine Konfigurationseinstellung für die Root-Domain. – wesgarrison

Antwort

11

möchten Sie vielleicht nur versuchen, den tatsächlichen Punkt com in Ihre/etc/hosts-Datei zu setzen.

dh:

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

was dies in der Regel tut, ist Ihr Computer Trick zu denken, es der Gastgeber all derer ist, so kann man nicht mehr auf die reale Website gehen in einem Web-Browser.

Wenn Sie möchten, dass es .local ist, vermutlich, damit Sie während der Arbeit an einer lokalen Kopie auf die echte Online-Site verweisen können, sollten Sie wahrscheinlich in app/controllers/application_controller.rb nachsehen (manchmal Anwendung. rb) und suchen Sie nach Logik, die hilft zu bestimmen, was in Abhängigkeit von der Subdomain zu tun ist. vielleicht ist es hart codiert, nur nach einer .com oder so etwas zu suchen.

+0

Heilige Kuh Spotman! das ist nur die Problemumgehung, nach der ich gesucht habe ... Ich habe es versucht und es funktioniert z.Ich kann lokal auf die App zugreifen, aber ich kann nicht zur öffentlichen Domain navigieren, die jetzt tolerierbar ist. Alles, was ich wirklich für jetzt brauchte, ist sicherzustellen, dass ich es lokal ausführen kann. Blick durch die Anwendung.rb scheint es ein bisschen funky Redirect Logik. Ich schätze, ich füge es meiner Liste der zu lernenden Dinge hinzu. Danke für Ihre Hilfe ... das ließ mich für die letzten ein oder zwei Tage ratlos sein. – Shawn

1

Wenn Sie den Webrick-Server oder etwas wie Puma für die Entwicklung verwenden, können Sie mit lvh.me auf Ihre Subdomains zugreifen. z.B.

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

http://lvh.me:3000/ gleich http://localhost:3000/