2012-12-29 7 views
9

Ho alcuni problemi nell'uso di gorilla mux in GAE.GAE Golang Gorilla mux - 404 pagina non trovata

Quando provo, ho '404 pagina non trovata'. La funzione rootHandler non viene chiamata (nessuna traccia generata)

Di seguito è parte del mio codice, qualche idea?

THK

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

risposta

20

Bisogna indirizzare le richieste al router mux. Il pacchetto http ha DefaultServeMux utilizzato da AppEngine, ma non lo è mux. (E non è registrando suoi circuiti con net/http da solo)

Cioè, tutto quello che dovete fare, è registrare il router mux con net/http:

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

(direttamente dai documenti)

Parte importante qui è http.Handle("/", r).

+0

thk, risposta perfetta. Funziona ora – rlasjunies