質問

I've got some problems to use gorilla mux within GAE.

When I try it, I've '404 page not found'. The rootHandler function is not called ( no traces generated)

Below is part of my code, any ideas?

thk in advance

...
    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")
...
役に立ちましたか?

解決

You have to route requests to your mux router. http package has DefaultServeMux which is used by AppEngine, but mux does not. (and it's not registering its routes with net/http by itself)

That is, all you have to do, is register your mux router with net/http:

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

(straight from the docs)

Important part here is http.Handle("/", r).

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top