静的ファイルの配信
Echo はファイルシステムまたは埋め込みファイルシステムから、画像、JavaScript、CSS、 PDF、フォントなどの静的アセットを配信できます。
デフォルトファイルシステム
Section titled “デフォルトファイルシステム”Echo は現在の作業ディレクトリをルートにした os.DirFS(".") をデフォルトファイルシステムとして使います。
変更するには Echo#Filesystem フィールドを設定します。
e := echo.New()e.Filesystem = os.DirFS("assets")Static ミドルウェアを使う
Section titled “Static ミドルウェアを使う”Static ミドルウェアを参照してください。
Echo#Static() を使う
Section titled “Echo#Static() を使う”Echo#Static(prefix, root string) は、指定した root ディレクトリからパス prefix 配下の
静的ファイルを配信するルートを登録します。
assets から /static/* 配下で任意のファイルを配信します。/static/js/main.js へのリクエストは
assets/js/main.js を配信します。
e := echo.New()e.Static("/static", "assets")assets から /* 配下で任意のファイルを配信します。/js/main.js へのリクエストは
assets/js/main.js を配信します。
e := echo.New()e.Static("/", "assets")Echo#StaticFS() を使う
Section titled “Echo#StaticFS() を使う”静的ファイルは embed.FS を含む任意の fs.FS から配信できます。配信されるファイルが
正しいサブディレクトリをルートにするよう、echo.MustSubFS を使います。embed.FS は
サブディレクトリもそれぞれのエントリとして含みます。
//go:embed "assets/images"var images embed.FS
func main() { e := echo.New()
e.StaticFS("/images", echo.MustSubFS(images, "assets/images"))
sc := echo.StartConfig{Address: ":1323"} if err := sc.Start(context.Background(), e); err != nil { e.Logger.Error("failed to start server", "error", err) }}Echo#File() を使う
Section titled “Echo#File() を使う”Echo#File(path, file string) は、単一の静的ファイルを配信するルートを登録します。
public/index.html からインデックスページを配信します。
e.File("/", "public/index.html")app/assets/favicon.ico から favicon を配信します。
e := echo.New()e.Filesystem = os.DirFS("/")e.File("/favicon.ico", "app/assets/favicon.ico") // The file path must not have a leading slash.