Golang Static File Server

package main

import (

func YourHandler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Gorilla!\n")

func UnauthorizedHandler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "401 Unauthorized\n")

func NotFoundHandler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "404 Not Found\n")

func main() {
r := mux.NewRouter()
r.HandleFunc("/", YourHandler)
d := "/static/"
r.HandleFunc(d, UnauthorizedHandler) // prevent directory listing
r.HandleFunc(d+"{filename:[a-zA-Z0-9]+}.gif", NotFoundHandler) // black list file type
r.PathPrefix(d).Handler(http.StripPrefix(d, http.FileServer(http.Dir("."+d))))
log.Fatal(http.ListenAndServe(":8000", r))
go run fileserver.go



Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Kevin FOO

Kevin FOO

A software engineer, a rock climbing, inline skating enthusiast, a husband, a father.