跳转至

Static Files

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