title: Golang web server not serving static files
body: <p>I'm fairly certain that I've overlooked something obvious, but I'm not sure what. I'm building a simple web application that serves up templated pages of books. The template works fine, and the path for the image seems to be populating correctly, but I keep getting a 404 error for the image itself.</p>
  
  <p>Here is the template:
  </p>
  
  <pre><code>&lt;h1&gt;{{.Title}}&lt;/h1&gt;
  &lt;h2&gt;{{.Author.Name}}&lt;/h2&gt;
  &lt;image src="../images/{{.ImageURI}}" /&gt;
  </code></pre>
  
  <p>and here is the application itself:
  </p>
  
  <pre><code>package main
  import (
      "html/template"
      "log"
      "net/http"
      "time"
  
      "github.com/gorilla/mux"
      "github.com/user/marketplace/typelibrary"
  )
  
  var books []typelibrary.Book
  
  func ItemHandler(w http.ResponseWriter, r *http.Request) {
      params := mux.Vars(r)
      var selected typelibrary.Book       
      //Retrieve item data
      for _, item := range books {
          if item.ID == params["id"] {
              selected = item
              break
          }
      }
      t, _ := template.ParseFiles("./templates/book.html")
      t.Execute(w, selected)
  }
  
  func main() {
      router := mux.NewRouter()
      books = append(books, typelibrary.Book{ID: "1", Title: "The Fellowship of the Ring", ImageURI: "LotR-FotR.jpg", Author: &amp;typelibrary.Author{Name: "JRR Tolkien"}})
      books = append(books, typelibrary.Book{ID: "2", Title: "The Two Towers", ImageURI: "LotR-tTT.jpg", Author: &amp;typelibrary.Author{Name: "JRR Tolkien"}})
      books = append(books, typelibrary.Book{ID: "3", Title: "The Return of the King", ImageURI: "LotR-RotK.jpg", Author: &amp;typelibrary.Author{Name: "JRR Tolkien"}})
      books = append(books, typelibrary.Book{ID: "4", Title: "Monster Hunter International", ImageURI: "MHI1.jpg", Author: &amp;typelibrary.Author{Name: "Larry Correia"}})
  
      router.Handle("/", http.FileServer(http.Dir(".")))
      router.Handle("/images/", http.FileServer(http.Dir("../images/")))
      router.HandleFunc("/item/{id}", ItemHandler).Methods("GET")
  
      srv := &amp;http.Server{
          Handler:      router,
          Addr:         ":8080",
          WriteTimeout: 10 * time.Second,
          ReadTimeout:  10 * time.Second,
      }
      log.Fatal(srv.ListenAndServe())
  }
  </code></pre>
  
  <p>The images are stored in the <code>images</code> subdirectory, directly below the directory where the executable is. When I attempt to view the broken image in the page, the path shows up as <code>localhost:8080/images/[imagename]</code> but gives a 404 error. What configuration or routing options am I missing here?</p>