コンテンツへスキップ

静的ファイル

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 も使えます。

開発者にとって便利なように、FastAPIstarlette.staticfiles と同じものを fastapi.staticfiles として提供しています。しかし、実際にはStarletteから直接来ています。

"マウント"とは何か

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

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

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

詳細

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

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

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

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

詳細情報

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