Вот сейчас попытался отправить [в браузер] вслед за HTML-файлом его CSS-файл. Просто прописав его следующей строкой, типа:
http.ServeFile(w, r, "directory/MyPage.html") // Это HTML-файл.
http.ServeFile(w, r, "directory/Style.css") // Это CSS, подключенный в HTML-файле.
Но отображение - как и было (HTML без CSS). И пишет: "Лишний ответ" - про строку с указанным CSS-файлом.
Как-то особенно нужно указывать подключенные файлы?
> логично, что проблема в маршрутизаторе скорее всего. Или в неправильно прописанных путях в html.
Браузер локально (по клику мышкой на файле) корректно всё открывает. Т. е. пути в HTML нормальные.
А что с маршрутизатором? Я указал: открыть такой-то_файл, он открылся. Что ещё?
Почему HTML-файл автоматом не тянет за собой все файлы, что в нём подключены? Он разве не должен? Как в Go-сервере устроено? (Браузер в локальном режиме тянет же автоматом всё.)
> но эти файлы идут отдельными запросами
Эти файлы вообще не запрашиваются. (Запрашиваемый не знает об их существовании.)
Вы хотели сказать, что эти подключенные файлы надо отправлять вслед за ведущим HTML-файлом, прописывая каждый файл явно (также как ведущий HTML-файл)?..
Когда сделано открытие HTML-файла "напрямую" - указана директория сайта, и оттуда Go-сервер автоматом забирает (для возврата в браузер) файл с именем, которое на конце URL'а - всё нормально работает, HTML-файл уходит в браузер со своими подключенными файлами. А вот когда я указываю возвращаемый файл не напрямую (ибо в URL'е маска), а через маршрутизатор - тут в браузере отображается "голый" HTML.
"Сопровождением" я сейчас назвал подключенные файлы (модули). (О них в вопросе сказано.)
Моя проблема в том, что в браузер отправляется один [указанный] HTML-файл, без этих самых подключенных файлов (CSS, JS, ...). Вот скрин кода, синим подчёркнуты подключенные файлы ("сопровождение").
> открываемый файл в запросе пользователь указывает.
Конечно же это не мой случай. Зачем бы я маршрутизатор сочинял?
У меня в URL'е маска.
Способ подмены URL'а мне вряд ли подойдёт. У меня URL уже распарсен, теперь надо просто открыть файл. И он уже открывается - http.ServeFile(w, r, "MyFile.html"). Но без подключенных файлов.
Видятся два пути:
1. Указать директорию_файлов_сайта в функции ServeFile() (в которой уже указан возвращаемый файл) - типа по Документации в скрине в вопросе.
2. Указать директорию и файл в функции http.HandleFunc(), может быть совместно с ServeFile(). Вот типа как в этой статье: https://metanit.com/go/web/1.2.php
Но не могу с этим разобраться. ( Всё работает, вроде..., но подключенные файлы не отправляются в браузер.
Сервер не нужен. Он есть.
Префикс тоже не нужен. Там уже с URL'ом маршрутизатор разобрался.
В Dir() указали директорию файлов сайта. В первом аргументе Handle() указана тоже директория сайта. А где указан открываемый файл?.. )