devroom.io/content/posts/2012-10-04-a-static-file-server-in-go.md

29 lines
939 B
Markdown
Raw Normal View History

2015-03-26 11:28:08 +00:00
+++
date = "2012-10-04"
title = "A static file server in Go"
tags = ["go"]
slug = "a-static-file-server-in-go"
+++
If you don't know Go, you should really look into it. Today I was trying to figure out how to write a simple (and fast) static file server in Go.
As it turns out, this is very easy to do. Go contains (in the `net/http` package) a nice `FileServer` type that can server files from the directory you point it to.
Here's a sweet and short example:
package main
import (
"net/http"
"log"
)
func main() {
err := http.ListenAndServe(":4242", http.FileServer(http.Dir("public")))
if err != nil {
log.Printf("Error running web server for static assets: %v", err)
}
}
By itself this is not very useful, but you can easily integrate this into any other http server you create, maybe for handling dynamic requests or doing web sockets.