http パッケージに組み込みの ServeFile メソッドがあることに気付く前に、静的ハンドラーを多かれ少なかれ次のように実装しました。
func StaticHandler(w http.ResponseWriter, r *http.Request) {
filename := mux.Vars(r)["static"] // using gorilla/mux
f, err := os.Open(fmt.Sprintf("%v/static/%v", webroot, filename))
if err != nil {
http.NotFound(w, r)
return
}
defer f.Close()
io.Copy(w, f)
}
たとえば、スタイル シートと画像を次のようにリンクしました。
<img href="/image.jpg" />
<link rel="stylesheet" type="text/css" href="/stylesheet.css">
リンクされたスタイルシートがブラウザによって適用されていませんでした (Chrome、Firefox、Midori でテスト済み)。スタイルシートを提供でき (MYSITE/stylesheet.css にアクセスすると css プレーンテキストが表示されます)、画像はページに正常に読み込まれますが、どのページにもスタイルがありません。
理由についてのアイデアはありますか?