【问题标题】:Gorilla mux calls incorrect handler?大猩猩多路复用器调用不正确的处理程序?
【发布时间】: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。

标签: go gorilla mux


【解决方案1】:

好吧,我已经尝试过使用另一个浏览器并且它可以工作......所以,我清理了主浏览器中的 cookie、历史记录和其他内容,从而解决了问题。我仍然不知道为什么......也许是关于我为保存登录数据而创建的cookie?关于 cookie 的路径?

【讨论】:

    猜你喜欢
    • 2016-05-12
    • 2017-06-28
    • 2021-11-21
    • 2021-12-29
    • 2015-01-11
    • 2018-06-08
    • 2014-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多