Удалить завершающую косую черту с URL-адресов - перейти на статический сервер
Я установил простой статический файловый сервер Go с http.FileServer
. Если у меня есть структура каталогов вродеpublic > about > index.html
, сервер правильно разрешит /about
к about > index.html
, но в конце добавляется косая черта, поэтому URL-адрес становится /about/
.
Есть ли простой способ удалить эти конечные косые черты при использовании http.FileServer
? В конечном счете, это работает в любом случае - в основном это личное предпочтение, чтобы по возможности не использовать косую черту в конце.
1 ответ
При регистрации маршрута /about/
неявный маршрут /about
добавлен (который перенаправляет клиентов на /about/
).
Чтобы обойти это, вы можете зарегистрировать два явных маршрута:
/about
служить вашемуindex.html
/about/
служитьhttp.FileServer
для обработки любых ресурсов HTML для страницы
вот так:
// what you had before
h.Handle("/about/",
http.StripPrefix(
"/about/",
http.FileServer(http.Dir("/tmp/about-files")),
),
)
// prevents implicit redirect to `/about/`
h.HandleFunc("/about",
func(w http.ResponseWriter, r *http.Request) {
http.ServeFile(w, r, "index.html") // serves a single file from this route
},
)