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