我在GAE中使用gorilla mux时遇到了一些问题。
当我尝试时,我'找不到404页'。不调用rootHandler函数(没有生成跟踪)
以下是我的代码的一部分,任何想法?
提前...
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")
...
答案 0 :(得分:20)
您必须将请求路由到您的mux路由器。 http
包有DefaultServeMux
由AppEngine使用,但mux
没有。 (而且它没有自己注册net/http
的路线)
也就是说,您所要做的就是在mux
路由器上注册net/http
:
func main() {
r := mux.NewRouter()
r.HandleFunc("/", HomeHandler)
r.HandleFunc("/products", ProductsHandler)
r.HandleFunc("/articles", ArticlesHandler)
http.Handle("/", r)
}
(直接来自文档)
这里重要的部分是http.Handle("/", r)
。