Skip to content

Instantly share code, notes, and snippets.

@paulmach
Last active March 28, 2024 15:31
Show Gist options
  • Save paulmach/7271283 to your computer and use it in GitHub Desktop.
Save paulmach/7271283 to your computer and use it in GitHub Desktop.
Simple Static File Server in Go
/*
Serve is a very simple static file server in go
Usage:
-p="8100": port to serve on
-d=".": the directory of static files to host
Navigating to http://localhost:8100 will display the index.html or directory
listing file.
*/
package main
import (
"flag"
"log"
"net/http"
)
func main() {
port := flag.String("p", "8100", "port to serve on")
directory := flag.String("d", ".", "the directory of static file to host")
flag.Parse()
http.Handle("/", http.FileServer(http.Dir(*directory)))
log.Printf("Serving %s on HTTP port: %s\n", *directory, *port)
log.Fatal(http.ListenAndServe(":"+*port, nil))
}
@TheBrainDunne
Copy link

Thanks

@abiiranathan
Copy link

Am glad you found it useful

@hmmftg
Copy link

hmmftg commented Dec 11, 2023

Hi, I've added base URL as flag in this link

@ataha322
Copy link

ataha322 commented Jan 4, 2024

Thanks!

Does anybody happen to know why browsers try to display the old directory listing, even though the server is now launched from a different directory?

It's the same on my firefox on Linux machine and chrome on my android. If I reopen the page it'll show the old listing, even though it gets 404 if files are accessed. If I open in incognito or new browser, everything is fine and the new listing is loaded.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment