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