我在 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") ...
您必须将请求路由到您的 mux 路由器。http包有DefaultServeMux哪个被 AppEngine 使用,但mux没有。(并且它不会自行注册其路线net/http)
http
DefaultServeMux
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).
http.Handle("/", r)