2016-07-15 40 views
2

我在本地使用appengine sdk在本地爲Google應用程序引擎啓動一個小應用程序。GAE go只在本地主機上提供路徑而不是域

我遇到了一個問題,只有當我嘗試使用本地主機而不是域名來訪問不同於根的路徑時,才能提供不同於根的路徑。

我的設置如下。

  • home.mydomain.com點到我家IP地址
  • 我的家庭路由器轉發傳入端口80上的TCP和UDP到我的筆記本電腦上的端口8080
  • 我的筆記本電腦運行的是Windows 10
  • 我去版本go1.6窗/ AMD64

我的app.yaml:

application: tasks 
version: 1 
runtime: go 
api_version: go1 

handlers: 
- url: /.* 
    script: _go_app 

最小示例代碼:

func init() { 
    fileHandler := http.FileServer(http.Dir("../frontend")) 

    http.HandleFunc("/loggedout", testHandler) 
    http.Handle("/", fileHandler) 

    log.Print(http.ListenAndServe(":8080", nil)) 
} 

func testHandler(res http.ResponseWriter, req *http.Request){  
    panic("JUST NEED THIS TO WORK") 
} 

我的症狀是,如果我訪問本地主機:8080 /讓我的網站,如果我訪問本地主機:8080/loggedout我得到預期的恐慌。
如果我訪問home.mydomain.com/我得到我的網站,但是如果我訪問home.mydomain.com/loggedout連接只是掛起,在chromes網絡選項卡它被列爲等待無限期。

+2

您是否在使用App Engine SDK運行? (goapp或dev_appserver?)如果需要,您的代碼不應該調用ListenAndServe。如果沒有,那麼這不是一個應用程序引擎的問題... – Greg

+0

非常感謝你在哪裏,我不需要ListenAndServe。但是,一旦我通過home.mydomain.com/訪問時刪除了沒有任何工作,但那是因爲我沒有聽它,所以我添加了--host 10.0.0.2到我的命令,它的工作 – morras

回答

0

正如Greg指出的那樣,當我使用goapp時,我不需要再調用ListenAndServe。 爲了讓goapp監聽localhost之外的請求,我還必須在命令中添加--host「my laptops ip」。

相關問題