Мультиплексор Gorilla вызывает неверный обработчик?

У меня есть следующий код:

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", сервер вызовет правильные обработчики. В чем причина? Что я делаю неправильно?


person Asen Valchev    schedule 22.06.2018    source источник
comment
Что делает /admin/?   -  person li x    schedule 22.06.2018
comment
log.Println(админ)   -  person Asen Valchev    schedule 22.06.2018
comment
Извините, я имел в виду, что происходит, когда вы переходите к /admin с косой чертой в конце «/admin/».   -  person li x    schedule 22.06.2018
comment
Такой же. Вызывает homeHandler.   -  person Asen Valchev    schedule 22.06.2018


Ответы (1)


Ну, я попробовал с другим браузером, и это сработало... Итак, я почистил куки, историю и другие вещи в основном браузере, и это решило проблему. Я до сих пор не знаю, почему ... Может быть, что-то с файлом cookie, который я создаю для хранения данных для входа? Что-то о пути куки?

person Asen Valchev    schedule 22.06.2018