2012-12-29 21 views
9

Mam pewne problemy z używaniem Goryla Munta w GAE.GAE Golang Gorilla mux - nie znaleziono strony 404

Kiedy próbuję, mam "Nie znaleziono strony 404". Funkcja rootHandler nie jest wywoływana (brak generowanych śladów)

Poniżej znajduje się część mojego kodu, jakieś pomysły?

thk z góry

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

Odpowiedz

20

Trzeba żądań do routera multipleksera. http pakiet ma DefaultServeMux, który jest używany przez AppEngine, ale mux nie. (I to nie rejestracji swoich tras z net/http przez siebie)

Oznacza to, że wszystko, co musisz zrobić, to zarejestrować router mux z net/http:

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

(prosto od docs)

Ważną częścią jest tutaj http.Handle("/", r).

+0

thk, idealna odpowiedź. Działa teraz – rlasjunies