小编典典

GAE Golang Gorilla mux - 404页面未找到

go

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

阅读 182

收藏
2021-12-26

共1个答案

小编典典

您必须将请求路由到您的 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).

2021-12-26