@Konboi memo

主に技術に関してつらつらと。

net/httpで静的ファイルを返す

追記 (2016/04/13)

完全に読み間違えていましたね やっちゃいけないそうです

shogo82148.github.io

やるならこう

func main() {
  http.HandleFunc("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("static"))))
  http.ListenAndServe(":3000", nil)
}

まとめ

ドキュメントをみましょう


軽いwebアプリケーション作ってたら読み込んだjsがhtmlでエラー出てて??? ってなってた

よくよく調べたら /static 以下のhandlerを定義してなかったので/にマッチしてtopのhtmlが返ってきてたからだった

調べたらこんな感じで静的ファイルを返せばよさそう

http.Handle("/static/", func(w http.ResponseWriter, r *http.Request) {
        http.ServeFile(w, r, r.URL.Path[1:])
})

stackoverflow.com