FastAPI Swagger界面未随后端代码更新,如何在8000端口运行新UI?
解决FastAPI Swagger UI显示旧版本的问题
以下是直接有效的排查和解决方法:
彻底重启后端服务
旧进程可能仍占用8000端口,导致新代码未实际运行:- Windows:打开命令提示符,执行
netstat -ano | findstr :8000找到进程PID,再用taskkill /F /PID <PID号>强制终止进程。 - Linux/macOS:终端执行
lsof -i :8000获取进程PID,然后kill -9 <PID号>。
之后重新启动FastAPI服务,比如执行uvicorn main:app --reload --port 8000。
- Windows:打开命令提示符,执行
强制清除浏览器本地缓存
DNS缓存无效时,问题通常出在浏览器缓存的旧Swagger UI静态文件:- 按
Ctrl+Shift+R(Windows/Linux)或Cmd+Shift+R(macOS)强制刷新页面; - 或进入浏览器设置,清除"缓存的图片和文件"类缓存后再访问。
- 按
临时禁用浏览器缓存调试
打开浏览器开发者工具(F12),在「网络」面板勾选「禁用缓存」选项,再刷新页面,确保加载最新静态资源。检查自定义Swagger配置是否完全移除
确认新代码中已彻底删除旧的Swagger UI自定义配置,比如swagger_ui_html、swagger_ui_oauth2_redirect_html这类覆盖默认UI的设置,恢复FastAPI默认配置。验证服务是否加载新代码
在代码中添加临时测试接口:@app.get("/test-new-code") def test_new_code(): return {"message": "New code is running"}访问
http://localhost:8000/test-new-code,若返回新响应,说明服务已加载新代码,问题仅在Swagger UI缓存;若未返回,需继续排查进程启动或代码部署问题。
内容的提问来源于stack exchange,提问作者Pragyan Priyadarsini
相关产品推荐
相关产品推荐

