コンテンツへスキップ

静的ファイル

StaticFiles を使用して、ディレクトリから静的ファイルを自動的に提供できます。

StaticFiles を使用する

  • StaticFiles をインポートします。
  • 特定のパスに StaticFiles() インスタンスを「マウント」します。
from fastapi import FastAPI
from fastapi.staticfiles import StaticFiles

app = FastAPI()

app.mount("/static", StaticFiles(directory="static"), name="static")

技術的な詳細

from starlette.staticfiles import StaticFiles も使用できます。

FastAPI は、開発者の利便性のために starlette.staticfiles と同じものを fastapi.staticfiles として提供しますが、実際には Starlette から直接来ています。

「マウント」とは

「マウント」とは、特定のパスに完全な「独立した」アプリケーションを追加し、そのアプリケーションがすべてのサブパスの処理を担当することを意味します。

これは APIRouter を使用するのとは異なり、マウントされたアプリケーションは完全に独立しています。メインアプリケーションの OpenAPI やドキュメントには、マウントされたアプリケーションの何も含まれません。

高度なユーザーガイドでこれについて詳しく読むことができます。

詳細

最初の "/static" は、この「サブアプリケーション」が「マウント」されるサブパスを指します。したがって、"/static" で始まるすべてのパスはこれによって処理されます。

directory="static" は、静的ファイルを含むディレクトリの名前を指します。

name="static" は、FastAPI が内部的に使用できる名前を与えます。

これらのパラメータはすべて「static」とは異なるものにすることができます。アプリケーションのニーズと特定の詳細に合わせて調整してください。

詳細情報

詳細とオプションについては、Starlette の静的ファイルに関するドキュメントを確認してください。