package controllers import "net/http" // Обработчик статических файлов с кэшированием func StaticHandler() http.HandlerFunc { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { w.Header().Add("Cache-Control", "public, max-age=31536000, immutable") // Здесь используется встроенный файловый сервер Go (http.FileServer), который: // Реализует интерфейс http.Handler (и поэтому имеет метод ServeHTTP) // Автоматически обслуживает статические файлы из файловой системы // Сам обрабатывает HTTP-запросы, определяет MIME-типы, отправляет правильные заголовки и т.д. http.FileServer(http.Dir(".")).ServeHTTP(w, r) }) }