静的ファイル¶
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は、開発者の便宜のために、fastapi.staticfiles
と同じstarlette.staticfiles
を提供しています。しかし、実際にはStarletteから直接提供されています。
「マウント」とは何か¶
「マウント」とは、特定のパスに完全に「独立した」アプリケーションを追加することを意味します。その後、そのアプリケーションはすべてのサブパスを処理します。
これは、APIRouter
を使用することとは異なります。マウントされたアプリケーションは完全に独立しているためです。メインアプリケーションのOpenAPIとドキュメントには、マウントされたアプリケーションからのものは含まれません。
上級者向けユーザーガイドで、これについて詳しく読むことができます。
詳細¶
最初の"/static"
は、この「サブアプリケーション」が「マウント」されるサブパスを表します。そのため、"/static"
で始まるパスはすべて、このサブアプリケーションによって処理されます。
directory="static"
は、静的ファイルを含むディレクトリの名前を表します。
name="static"
は、FastAPI内部で使用される名前を指定します。
これらのパラメータはすべて「static
」とは異なる場合があります。必要に応じて、独自のアプリケーションの具体的な詳細に合わせて調整してください。
詳細情報¶
詳細とオプションについては、Starletteの静的ファイルに関するドキュメントを参照してください。