Ответ 1
Вы можете обслуживать статические файлы с помощью функции http.FileServer
.
package main
import (
"log"
"net/http"
)
func main() {
http.Handle("/", http.StripPrefix("/", http.FileServer(http.Dir("path/to/file"))))
if err := http.ListenAndServe(":8080", nil); err != nil {
log.Fatal("ListenAndServe: ", err)
}
}
EDIT: Подробнее идиоматический код.
EDIT 2: этот код выше вернет изображение image.png
, когда браузер запрашивает http://example.go/image.png
Функция http.StripPrefix
здесь в этом случае не является излишней, поскольку обрабатываемый путь - это веб-корень. Если изображения должны были быть отправлены с пути http://example.go/images/image.png, то строка, указанная выше, должна быть http.Handle("/images/", http.StripPrefix("/images/", http.FileServer(http.Dir("path/to/file"))))
.