スキップしてメイン コンテンツに移動

Gin初心者の静的ファイル配信

Gin初心者の静的ファイル配信

はじめに

この記事はGin初心者向けに、静的ファイル配信の基本から実際のコード例までを解説します。Ginは高速でシンプルなWebフレームワークですが、静的リソース(CSS、JavaScript、画像など)を効率的に配信するための仕組みを理解しておくことが重要です。ここでは、公開ディレクトリの構成、r.Static、r.StaticFileの使い方、そしてHTML配信に必要な設定を順を追って説明します。

Ginで静的ファイル配信

Ginでは静的ファイルを配信するために、r.Staticr.StaticFile という2つのメソッドが用意されています。まずは公開ディレクトリ(例: public)を作成し、そこにCSSやJavaScript、画像などのアセットを配置します。Ginはデフォルトで public ディレクトリを探し、そこから静的リソースを提供します。

r.Staticとr.StaticFileの使い分け

以下のように使い分けます。

r.Static("/assets", "./public/assets")   // ディレクトリ全体を公開
r.StaticFile("/favicon.ico", "./public/favicon.ico") // 単一ファイルを公開

r.Static は指定したURLパスに対してディレクトリ全体をマッピングし、任意のファイルを自動で探して返します。r.StaticFile は特定のファイルだけを公開したい場合に使用します。例えば、サイト全体で共通の favicon.ico を一つだけ公開したいときに便利です。

HTML配信とアセット管理

HTMLファイルは templates ディレクトリに置き、Ginの LoadHTMLGlob で読み込みます。テンプレート内では、静的ファイルへのパスを正しく指定する必要があります。以下は典型的な例です。

r.LoadHTMLGlob("templates/*")
r.GET("/", func(c *gin.Context) {
    c.HTML(200, "index.tmpl", gin.H{
        "title": "ホーム",
    })
})

テンプレート内では、CSSやJavaScriptを次のようにリンクします。

<link rel="stylesheet" href="/assets/css/style.css">
<script src="/assets/js/app.js"></script>

画像は assets/images に置き、<img> タグで参照しますが、この記事では画像タグは使用しません。画像を参照する場合は、src="/assets/images/sample.png" のようにURLを指定します。

まとめ

Gin初心者が静的ファイル配信を行う際のポイントは、公開ディレクトリを明確にし、r.Staticr.StaticFile を適切に使い分けることです。HTML配信とアセット管理を統一した構成にすることで、開発効率と保守性が向上します。CSSやJavaScript、画像などのアセットは public/assets のように整理し、テンプレートからは相対パスで参照するようにしましょう。これで、Ginを使ったシンプルで高速なWebアプリケーションの構築が可能になります。

この記事はAIによって作成されました。

コメント