静态文件¶
使用 StaticFiles
可以指定文件夹自动提供静态文件服务。
安装 aiofiles
¶
首先,安装 aiofiles
:
$ pip install aiofiles
---> 100%
使用 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
相同,只是为了方便开发者调用。但实际上,fastapi.staticfiles
直接继承自 Starlette。
什么是挂载¶
挂载是指在路径中添加完全独立的应用,然后用它处理所有子路径。
与 APIRouter
不同,挂载的应用是完全独立的。主应用的 OpenAPI 与 API 文档不包含挂载应用中的内容。
高级用户指南中会介绍更多相关内容。
细节¶
第一个/static
是要挂载的子应用的路径。因此,挂载子应用会处理所有以 /static
开头的路径。
directory="static"
是静态文件所在的文件夹。
name="static"
用于指定 FastAPI 内部使用的名称。
这些参数都不必命名为 static
,可以按需更改。
更多说明¶
更多细节与选项,详见 Starlette 文档: 静态文件。