РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1044 of 1593 menu

Функция http.FileServer

Функция http.FileServer создает HTTP-обработчик, который обслуживает статические файлы из указанной директории. В первый параметр она принимает корневую файловую систему http.FileSystem, которая обычно создается с помощью функции http.Dir. Возвращаемый обработчик реализует интерфейс http.Handler и может быть передан в функции http.Handle или http.HandleFunc.

Синтаксис

http.FileServer(root http.FileSystem) http.Handler

Пример

Давайте создадим простой файловый сервер для директории "./static":

package main import ( "net/http" ) func main() { fs := http.FileServer(http.Dir("./static")) http.Handle("/", fs) http.ListenAndServe(":8080", nil) }

Результат выполнения кода:

"Сервер запущен на порту 8080, файлы доступны по адресу http://localhost:8080"

В этом примере все файлы из директории ./static становятся доступными по корневому пути.

Пример

Давайте обслужем файлы по пути "/public", используя функцию http.StripPrefix:

package main import ( "net/http" ) func main() { fs := http.FileServer(http.Dir("./files")) http.Handle("/public/", http.StripPrefix("/public/", fs)) http.ListenAndServe(":8080", nil) }

Результат выполнения кода:

"Сервер запущен, файлы доступны по адресу http://localhost:8080/public/"

Функция http.StripPrefix удаляет указанный префикс из URL-пути перед тем, как файл будет запрошен из директории.

Пример

Давайте создадим обработчик с кастомной корневой файловой системой:

package main import ( "net/http" "os" ) func main() { root := http.Dir("./assets") fs := http.FileServer(root) http.Handle("/assets/", http.StripPrefix("/assets/", fs)) // Проверка существования директории if _, err := os.Stat("./assets"); os.IsNotExist(err) { panic("Директория ./assets не существует") } http.ListenAndServe(":8080", nil) }

Результат выполнения кода:

"Сервер запущен на порту 8080, файлы доступны по адресу http://localhost:8080/assets/"

В этом примере мы проверяем существование директории и обслуживаем файлы с префиксом /assets.

Смотрите также

  • функцию http.StripPrefix,
    которая удаляет префикс из пути запроса
  • функцию http.ServeFile,
    которая обслуживает отдельный файл по запросу
  • функцию http.ServeContent,
    которая обслуживает содержимое файла с поддержкой заголовков
  • функцию http.Handle,
    которая регистрирует обработчик для указанного паттерна
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить