FastAPI 自动文档Swagger UI 打不开。显示空白

本文档介绍了当FastAPI的SwaggerUI和Redoc无法打开时的排查及解决方案。问题在于请求的静态资源文件加载失败。解决方法包括从GitHub下载所需文件,替换原有代码中引用的CDN链接,并在主程序中添加静态文件目录。通过这些步骤,成功修复了文档显示空白的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

FastAPI 自动文档Swagger UI 打不开,显示空白.redoc也打不开。


一、查明原因

在这里插入图片描述

Request URL: https://cdn.jsdelivr.net/npm/swagger-ui-dist@4/swagger-ui.css
Request URL: https://cdn.jsdelivr.net/npm/swagger-ui-dist@4/swagger-ui-bundle.js

这两个文件红了。

二、解决问题

1.下载文件

这两个文件的开源项目地址如下
https://github.com/swagger-api/swagger-ui
https://github.com/Redocly/redoc
我们只需要提前自己需要的文件即可
这里已经从中抽取出来所需要的文件,需要的可以点击下方连接自行下载
静态文件直达
百度网盘链接: https://pan.baidu.com/s/1lvNm1tfshf-OZnEyrSvcdQ 提取码: g4u5
文件结构

2.修改代码引用

我们需要在python解释器环境(或虚拟环境)下Lib/site-package/fastapi/openapi/docs.py文件

注释掉原来的代码(一共2处)

swagger_js_url: str = "https://cdn.jsdelivr.net/npm/swagger-ui-dist@4/swagger-ui-bundle.js",
swagger_css_url: str = "https://cdn.jsdelivr.net/npm/swagger-ui-dist@4/swagger-ui.css",
swagger_favicon_url: str = "https://fastapi.tiangolo.com/img/favicon.png",

修改为新的代码

swagger_js_url: str = "/static/swagger-ui/swagger-ui-bundle.js",
swagger_css_url: str = "/static/swagger-ui/swagger-ui.css",
swagger_favicon_url: str = "/static/swagger-ui/favicon-32x32.png",

在这里插入图片描述
注释掉

redoc_js_url: str = "https://cdn.jsdelivr.net/npm/redoc@next/bundles/redoc.standalone.js",
redoc_favicon_url: str = "https://fastapi.tiangolo.com/img/favicon.png",

修改为

redoc_js_url: str = "/static/redoc/bundles/redoc.standalone.js",
redoc_favicon_url: str = "/static/redoc/favicon.png",

在这里插入图片描述

最后在主程序里面加上静态目录

from starlette.staticfiles import StaticFiles  # 先引用包
app.mount(/static’, StaticFiles(directory=‘static’), name=‘static’)

再次查看文档
可以打开了
在这里插入图片描述
本地路径
在这里插入图片描述

根据网上教程整理而成,侵删。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值