2012-12-29 9 views
9

Ich habe einige Probleme Gorilla Mux in GAE zu verwenden.GAE Golang Gorilla mux - 404 Seite nicht gefunden

Wenn ich es versuche, habe ich 404 Seite nicht gefunden. Die rootHandler-Funktion wird nicht aufgerufen (keine Traces generiert)

Unten ist Teil meines Codes, irgendwelche Ideen?

thk im Voraus

... 
    func init() { 
    r := mux.NewRouter() 
    r.HandleFunc("/",rootHandler) 
    } 
    func rootHandler(w http.ResponseWriter, r *http.Request) { 
    var functionName = "rootHandler" 
    c := appengine.NewContext(r) 
    c.Infof(functionName+"-start") 
    defer c.Infof(functionName+"-end") 
... 

Antwort

20

Sie haben, um Anfragen zu Ihrem Mux-Router. http Paket hat DefaultServeMux, die von AppEngine verwendet wird, aber mux nicht. (Und es ist die Registrierung nicht seine Routen mit net/http von selbst)

Das heißt, alles, was Sie zu tun haben, registrieren Sie Ihre mux Router mit net/http:

func main() { 
    r := mux.NewRouter() 
    r.HandleFunc("/", HomeHandler) 
    r.HandleFunc("/products", ProductsHandler) 
    r.HandleFunc("/articles", ArticlesHandler) 
    http.Handle("/", r) 
} 

(direkt aus der Dokumentation)

Wichtiger Teil hier ist http.Handle("/", r).

+0

thk, perfekte Antwort. Funktioniert jetzt – rlasjunies