fastapi: static目录下静态文件有时能访问,有时访问出错(返回当前页面)

一,现象:

在 FastAPI 的父子应用(Sub-apps)架构中,静态文件的挂载位置、路由匹配机制以及模板中的 url_for 调用方式,都会直接导致静态文件出现“有时生效、有时不生效”或者彻底失效的现象。
例子:
我的项目是一个父应用,有两个子应用admin和api,
static的配置是在子应用admin的main.py中,如下:
admin_app.mount("/static", StaticFiles(directory="app/static"), name="static")

二,解决:

在多子应用架构中,将静态文件分散在各个子应用中很容易引发路径混乱。最推荐的做法是将静态文件统一挂载在父应用上

在父应用的 main.py 中统一挂载静态文件:

# 父应用 main.py
app.mount("/static", StaticFiles(directory="static"), name="static")
app.mount("/admin", admin_app)
app.mount("/api", api_app)
 
posted @ 2026-07-20 16:14  刘宏缔的架构森林  阅读(4)  评论(0)    收藏  举报