2016-07-15 11 views
2

Ich bin mit einer kleinen App für Google App Engine lokal mit der Appengine SDK rumspielen.GAE go dient nur Pfade auf localhost nicht Domäne

Ich habe ein Problem, wo ein anderer Pfad als root nur bedient werden kann, wenn ich versuche, es mit localhost, aber nicht einen Domain-Namen zu treffen.

Mein Setup ist wie folgt.

  • home.mydomain.com Punkte zu mir nach Hause IP-Adresse
  • Meiner vorwärts Home-Router eingehenden TCP- und UDP-Port 80 auf meinen Laptop auf Port 8080
  • Mein Laptop Windows-10
  • läuft
  • My gehen Version go1.6 Fenster/amd64

Mein app.yaml:

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

handlers: 
- url: /.* 
    script: _go_app 

Mindestbeispielcode:

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") 
} 

ist meine Symptome, wenn ich localhost zugreifen: 8080/ich meine Website zu bekommen, und wenn ich localhost Zugriff: 8080/loggedout ich die erwartete Panik bekommen.
Wenn ich auf home.mydomain.com/ zugreife, erhalte ich meine Website, aber wenn ich auf home.mydomain.com/loggedout zugreife, bleibt die Verbindung hängen, in der Chromas-Netzwerk-Registerkarte wird sie auf unbestimmte Zeit als ausstehend aufgeführt.

+2

Verwenden Sie das App Engine SDK? (goapp oder dev_appserver?) Ihr Code sollte nicht ListenAndServe aufrufen, wenn dies der Fall ist. Und wenn nicht, dann ist das keine App-Engine-Frage ... – Greg

+0

Vielen Dank Greg du warst richtig, ich brauchte nicht ListenAndServe. Jedoch, sobald ich entfernt habe, dass nichts funktionierte, als ich über home.mydomain.com zuging, aber das war, weil ich nicht darauf hörte, so fügte ich --host 10.0.0.2 meinem Befehl hinzu und es funktionierte – morras

Antwort

0

Als Greg darauf hinwies, musste ich, als ich goapp benutzte, nicht auch ListenAndServe anrufen. Um goapp zu bekommen, um Anfragen außerhalb von localhost zu hören, musste ich auch --host "meine Laptops ip" zum Befehl hinzufügen.