カテゴリ: Go言語 更新日: 2025/11/05

Go言語で静的ファイルをサーブする方法(http.FileServer)

Go言語で静的ファイルをサーブする方法(http.FileServer)
Go言語で静的ファイルをサーブする方法(http.FileServer)

先生と生徒の会話形式で理解しよう

生徒

「先生、Go言語で作ったWebアプリで画像やCSSファイルを表示したいんですが、どうしたらいいですか?」

先生

「その場合は静的ファイルをサーブする仕組みを使います。Go言語ではhttp.FileServerが便利です。」

生徒

「静的ファイルって具体的には何ですか?」

先生

「静的ファイルとは、Webページで表示する画像やCSS、JavaScriptのように、内容が変わらないファイルのことです。」

生徒

「なるほど、画像やスタイルシートは毎回同じだから静的ファイルなんですね!」

先生

「そうです。では、実際にhttp.FileServerを使って静的ファイルを配信する方法を見ていきましょう。」

1. http.FileServerで静的ファイルをサーブする基本

1. http.FileServerで静的ファイルをサーブする基本
1. http.FileServerで静的ファイルをサーブする基本

Go言語ではhttp.FileServerを使うと、指定したディレクトリにあるファイルをWebブラウザに配信できます。基本的にはhttp.Handleと組み合わせます。


package main

import (
    "net/http"
)

func main() {
    fs := http.FileServer(http.Dir("./static"))
    http.Handle("/static/", http.StripPrefix("/static/", fs))

    http.ListenAndServe(":8080", nil)
}

このコードでは、プロジェクト内のstaticフォルダにある画像やCSS、JavaScriptをブラウザからアクセスできるようにしています。

2. http.StripPrefixでURLの整理

2. http.StripPrefixでURLの整理
2. http.StripPrefixでURLの整理

ブラウザからのアクセスURLには/static/と書きますが、実際のフォルダは./staticです。http.StripPrefixを使うと、URLの先頭部分を取り除いてフォルダに正しくアクセスできます。


http.Handle("/static/", http.StripPrefix("/static/", fs))

これで、ブラウザのURLがhttp://localhost:8080/static/image.pngでも、Goは./static/image.pngを返すことができます。

3. 静的ファイルの活用例

3. 静的ファイルの活用例
3. 静的ファイルの活用例

静的ファイルをサーブすると、Webページで画像やスタイルを簡単に表示できます。例えば、HTMLファイルからCSSを読み込むときにも使えます。


<!DOCTYPE html>
<html>
<head>
    <link rel="stylesheet" href="/static/style.css">
</head>
<body>
    <h1>Goで静的ファイルを表示</h1>
    <img src="/static/image.png" alt="サンプル画像">
</body>
</html>

ブラウザにアクセスすると、CSSのスタイルが反映され、画像も表示されます。

4. 注意点とポイント

4. 注意点とポイント
4. 注意点とポイント
  • 静的ファイルは更新しても内容が変わらないものに使う
  • ディレクトリ構造とURLパスを一致させることが大切
  • http.StripPrefixを使うことでURLとフォルダ名のズレを調整できる
  • Go言語でWebアプリを作るときは、まず静的ファイルをサーブできるようにするとHTMLやCSSの学習がスムーズ

http.FileServerを使えば、初心者でも簡単に画像やCSS、JavaScriptなどの静的ファイルをWebブラウザに表示できます。これにより、見た目のあるWebページを作成することが可能です。

カテゴリの一覧へ
新着記事
Go言語の関数でエラーハンドリングする基本的な方法
Go言語のスライス・マップ・配列をまとめて比較してみよう!初心者でもわかる使い分けの基本
Go言語の条件分岐の見やすい書き方を徹底解説!初心者でもわかるif文の使い方
Go言語とは何か?初心者向けに特徴・できること・インストール手順までやさしく解説
人気記事
No.1
Java&Spring記事人気No1
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.2
Java&Spring記事人気No2
Go言語で条件式を1行で書くコツ!三項演算子の代替と短縮記法
No.3
Java&Spring記事人気No3
Swift開発環境の構築方法を徹底解説!Xcode・Windows・Linux対応
No.4
Java&Spring記事人気No4
Kotlinのデータクラス(data class)とは?便利な特徴と使い方を初心者向けにやさしく解説!