go-lang简单网络服务器:提供静态图片

I want to write a simple webserver in go that does the following: when i go to http://example.go:8080/image, it returns a static image. I'm following an example i found here. In this example they implement this method:

func handler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Hi there, I love %s!", r.URL.Path[1:])
}

and then refer to it here :

...
...
http.HandleFunc("/", handler)

Now, what i wanna do is serve an image instead of writing to the string. How would i go about that?

You can serve static files using the http.FileServer function.

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: More idiomatic code.

EDIT 2: This code above will return an image image.png when the browser requests http://example.go/image.png

The http.StripPrefix function here is strictly unnecessary in this case as the path being handled is the web root. If the images were to be served from the path http://example.go/images/image.png then the line above would need to be http.Handle("/images/", http.StripPrefix("/images/", http.FileServer(http.Dir("path/to/file")))).

Playground