так я имел некоторые проблемы с этим в последнее время ... Вот мой код:Вызов http.FileServer в http.HandlerFunc
https://gist.github.com/anonymous/af1e6d922ce22597099521a4b2cfa16f
Моей проблема: Я пытаюсь обслуживать некоторые HTML-файлы из папки: ./docs/html
. Моя структура папок:
.
├── docs
│ └── html
│ ├── index.html
│ └── rest.html
└── main.go
Вы заметите, в сущности, я звоню метод ServeHTTP
на http.HandlerFunc
ServeDocs, который затем собирается через маршрутизатор (mux.Router
). Проблема у меня почему-то единственный файл, будучи подан в localhost:8080/
является index.html
, и когда я перейти к localhost:8080/rest.html
я получаю 404.
действительно нечетная часть является то, что, когда я удалить весь код маршрутизатора и сделайте примерно следующее:
fs := http.FileServer(http.Dir("./docs/html"))
http.Handle("/", fs)
log.Println("Listening...")
http.ListenAndServe(":3000", nil)
Все работает так, как должно. Кто-нибудь знает, что происходит? Я потратил часы, пытаясь понять это, и я, наконец, сдался.
Это так странно. Просто протестировано, и это сработало как шарм! Спасибо за помощь! –