func main() {
router := gin.Default()
router.Static("/static", "./static")
router.StaticFile("/index.htm", "./static/index.htm")
router.Run(":8080")
}
func main() {
fs := http.FileServer(http.Dir("static"))
http.Handle("/static/", http.StripPrefix("/static/", fs))
log.Println("Listening...")
http.ListenAndServe(":3000", nil)
}
func main() {
fs := http.FileServer(http.Dir("somedir"))
http.Handle(
"/",
http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
if r.URL.Path == "/somefile.txt" {
r2 := &http.Request{} // создаем запрос для подмены
*r2 = *r // копируем старый реквест в новый
r2.URL = &url.URL{} // заменяем урл в запросе на пустой
*r2.URL = *r.URL // копируем содержимое старого урла в новый запрос
r2.URL.Path = "somefile.txt" // подменяем путь на нужный
fs.ServeHTTP(w, r2) // направляем запрос в файловую систему
} else {
http.NotFound(w, r)
}
}),
)
log.Println("Listening...")
http.ListenAndServe(":3000", nil)
}
file, err := os.Open("some_filename.txt")
if err != nil {
http.NotFound(w, r)
return
}
defer file.Close()
io.Copy(w, file)