2010-01-30 64 views
10

我無法弄清楚我忽略了什麼,也許它很明顯或缺乏理解。子域名和本地安裝的Rails應用程序

我正在使用的應用程序使用託管服務器上的子域正常工作。我想通過本地安裝會繞開一些路由問題,所以我讀了關於更改/ etc/hosts並使用Ghost gem的信息。這兩個似乎工作正常,即本地主機:3000 /成爲myapp.local:3000,但我不明白如何去登錄到子域帳戶。下面是一個例子...

  • myapp.local:3000 /會話/新=默認的登錄頁面的應用
  • myapp.local:3000 /註冊=默認註冊頁面
    • 我可以在這裏創建一個帳戶Sub1的
    • 感謝頁面顯示瓦特/參考sub1.myapp.com它指向託管應用程序(本地數據庫顯示這一領域也一樣)
  • sub1.myapp.local手動添加到/ etc/hosts和dscacheutil -flushcache
  • sub1.myapp.local:3000 /會話/新是子域
    • 登錄嘗試返回,這不是一個有效的域。這似乎是有道理的,因爲本地數據庫在託管服務器上顯示url爲sub1.myapp.com。

所以我的問題是,是否有一個本地的解決方法,我可以用於開發或已我完全錯過了沿途的一個基本概念?

+0

如果sub1.myapp.local響應,你知道你的主機的設置是否正確。看起來有些東西沒有存儲已使用的* actual *域,或者存在根域的配置設置。 – wesgarrison 2010-01-30 20:02:59

回答

11

您可能只想嘗試將實際的點com放入/ etc/hosts文件中。

即:

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

這是什麼通常不會是騙你的電腦,讓它覺得是所有這些的主機,所以你不能去真正的網站了在Web瀏覽器。

如果你確實希望它是.local,大概是爲了讓你可以在本地拷貝的時候參考真正的在線網站,你應該看看app/controllers/application_controller.rb(有時是應用程序。 rb)並在那裏尋找邏輯,根據子域有助於確定做什麼。也許它的硬編碼只能查找.com或其他東西。

+0

聖牛小販!這只是我正在尋找的解決方法... 我試過了,它可以工作,例如我可以在本地訪問該應用,但無法導航到目前可以容忍的公共域。我現在真正需要的是確保我可以在本地運行它。 通過application.rb看,似乎有點時髦的重定向邏輯。猜猜我會將其添加到我要學習的東西列表中。 感謝您的幫助......這讓我在過去的一兩天中難倒了。 – Shawn 2010-01-30 19:56:38

1

如果您使用webrick服務器或諸如Puma進行開發,您可以使用lvh.me訪問您的子域。例如

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

http://lvh.me:3000/等於http://localhost:3000/