Пример работы файлового сервера для go-chi:
r := chi.NewRouter() ... ... ... fileServer(r) ... ... ... // fileServer is serving static files. func fileServer(router *chi.Mux) { root := "./frontend" fs := http.FileServer(http.Dir(root)) router.Get("/*", func(w http.ResponseWriter, r *http.Request) { if _, err := os.Stat(root + r.RequestURI); os.IsNotExist(err) { w.WriteHeader(http.StatusNotFound) return } else { fs.ServeHTTP(w, r) } }) }
До начала работы нужно задать root — корневую папку для работы файлового сервера.
Все запросы начинающиеся на /* будут идти на заданный файловый сервер. Возможно также задать только определенный роут, допустим /static/*