为何Uvicorn无法识别CSS文件变更?FastAPI建站问题
解决FastAPI+Uvicorn修改CSS不生效的问题
- 浏览器缓存:浏览器会默认缓存静态资源,哪怕服务器端已经更新,浏览器还是会优先读取本地缓存。可以按
Ctrl+Shift+R强制刷新页面,或者打开浏览器开发者工具的「网络」面板,勾选「禁用缓存」(刷新时保持工具处于打开状态)。 - 静态文件缓存配置:FastAPI的
StaticFiles如果手动配置了max_age参数(比如app.mount("/static", StaticFiles(directory="static", max_age=3600), name="static")),会设置较长的缓存有效期,导致浏览器长期缓存旧文件。开发环境建议把max_age设为0或者直接去掉这个参数。 - 文件路径不匹配:可能你修改的CSS文件不是服务器实际加载的那一个。检查FastAPI挂载静态目录的代码,确认
directory参数指向的文件夹和你编辑的文件所在目录完全一致,有没有拼写错误或者层级错误。 - Uvicorn进程残留:有时候关闭Uvicorn时没彻底杀掉进程,残留的进程还在运行并加载旧文件。可以用
ps aux | grep uvicorn(Linux/macOS)或者任务管理器(Windows)查看并结束残留进程,再重新启动服务器。开发阶段建议用uvicorn main:app --reload命令,开启自动重载,修改文件后服务器会自动重启加载新内容。 - 文件权限问题:如果是Linux/macOS系统,CSS文件的权限可能限制了服务器进程读取,导致服务器无法获取新修改的内容。用
ls -l查看文件权限,确保服务器运行用户有读取该文件的权限。 - IDE文件同步延迟:如果用远程开发、虚拟机或者容器环境,IDE可能没及时把修改同步到服务器所在的目录。手动登录服务器或者进入容器,检查目标CSS文件的内容是否和你本地编辑的一致。
内容的提问来源于stack exchange,提问作者Connor
相关产品推荐
相关产品推荐

