16 lines
897 B
Go
16 lines
897 B
Go
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)
|
||
})
|
||
}
|