Как подредактировать URL ДО его попадания в функцию http.FileServer()?
Как подредактировать URL, открывающий статику, примерно в такой логике?:
Роут Go-сервера ловит URL (типа - domen.com/blog/L5566 , ловится хэндлером по фрагменту /blog/); далее проверяется окончание Пути_URL'а; если оно корректно - то URL модифицируем до формата запроса статического_файла (типа domen.com/pages/page10.html), и передаём функции http.FileServer().
Если вы говорите про отдать функцией http.ServeFile() - то не выйдет. (Было обсуждение про это.)
Подменять для http.FileServer() - потому что только она корректно отдаёт HTML-подобную статику (насколько могу судить - именно для этого предназначена).
> это не сложно, подмените URL в r.URL.Path
Можете написать пример? Достаточно одной строки - типа _что-то_тут_.http.FileServer(http.Dir(varDir)) , дальше разберусь.
> по факту, это одна и та же функция, просто в разных обёртках.
Как бы то ни было, "заточка" у этих функций разная.
http.ServeFile() не отдаст нормально HTML-статику. Я долго пытался. :(( Тупо потерял время.
Vadim Rublev, отдаст, но по мимо html страницы у неё есть доп зависимости (изображения, скрипты и т.д.) и
их тоже нужно обрабатывать, что и делает http.FileServer.
В случае подмены адреса, у вас так же эти зависимости будут находиться не в том месте, из которого браузер будет их запрашивать и снова ничего не получится. Ведь сервер отдаёт только то, что у него запрашивают.
Вам нужно разобраться, как функционирует WEB, как работает HTTP и как браузер скачивает данные сайта для отображения, судя по вопросам и тому что вы пытаетесь сделать, у вас очень плохое понимание данных основ.
Компилируется, но строка с http.StripPrefix() не работает... Как её правильно записать? Чтобы в случае запроса CSS-файла просто вырезался фрагмент URL'а.