静的ファイル¶
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の静的ファイルに関するドキュメントを確認してください。