让我们采用以下模式:
package main
import (
"fmt"
"net/http"
)
func main() {
admin := http.NewServeMux()
admin.HandleFunc("/", root)
admin.HandleFunc("/foo", foo)
http.Handle("/admin", admin)
http.ListenAndServe(":4567", nil)
}
func root(w http.ResponseWriter, r *http.Request) {
fmt.Fprint(w, "Admin: ROOT")
}
func foo(w http.ResponseWriter, r *http.Request) {
fmt.Fprint(w, "Admin: FOO")
}
当我运行时/admin,它会触发根处理程序,但当我运行时它不会触发,/admin/foo这是怎么回事?明确地说,我不是在寻找替代包,我实际上有一个自定义路由器,我只是对这里发生的事情感到好奇,因为这种模式对我来说没有多大意义。
相关分类