【发布时间】:2018-12-01 19:05:06
【问题描述】:
我有以下代码:
r := mux.NewRouter()
r.HandleFunc("/", homeHandler)
r.HandleFunc("/login", loginHandler)
admin.Handle(r.PathPrefix("/admin").Subrouter())
....
http.Handle("/", r)
http.ListenAndServer(":1234", nil)
在管理包中,我有:
func Handle(router *mux.Router) {
router.HandleFunc("/", adminHandler)
router.HandleFunc("/add", addGameHandler)
router.HandleFunc("/finish/{id}", finishGameHandler)
}
所以,当我尝试访问 "/admin" 时,服务器会调用 homeHandler??但是,如果我尝试使用 "/admin/add" 或 "admin/finish/123",服务器会调用正确的处理程序。什么原因?我做错了什么?
【问题讨论】:
-
“/admin/”是做什么的?
-
log.Println("admin")
-
对不起,我的意思是当您导航到 /admin 时会发生什么,并在末尾添加正斜杠 '/admin/'
-
相同。调用 homeHandler。