静态文件¶
你可以使用 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 关于静态文件的文档。