You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flask服务带路径前缀部署时Swagger静态资源加载失败问题

Flask-RESTX部署到AWS反向代理后Swagger静态资源加载异常问题

问题背景

我使用flask与flask_restx(flask-restplus的社区分叉项目)搭建简易接口服务,服务最终将部署在AWS平台,计划通过框架自动生成的Swagger文档页方便其他人员快速测试接口。
初始实现代码如下:

from flask import Flask
from flask_restx import Api
from my_service import service_namespace

app = Flask(__name__)
api = Api(app, version='1.0')
api.add_namespace(service_namespace)

if __name__ == '__main__':
    app.run(debug=True)

本地测试访问localhost:5000时,Swagger文档加载、接口调试功能均完全正常。但将服务部署到AWS后,由于服务通过域名二级路径反向代理转发(例如my-company.com/chris-service指向后端运行的容器实例),Swagger文档页无法加载CSS等必需静态资源,页面显示异常,异常截图如下:
Swagger页面加载异常截图

已尝试的排查方案

我先后查阅了Flask框架下Swagger报404错误的多个公开技术方案,覆盖Flasgger 404、Swagger文档生成错误、Flask通用路由404等相关场景,还尝试通过添加Blueprint修改配置(暂未完全掌握Blueprint的运行机制),尝试的配置代码如下:

app = Flask(__name__)
blueprint = Blueprint("api", __name__, 
                      root_path="/chris-service",
                      # url_prefix="/chris-service", # 该参数配置后无效
)
api = Api(blueprint)
app.register_blueprint(blueprint)
...

上述配置尝试后问题仍未解决。

问题补充排查细节

结合进一步排查,确认问题细节如下(示例地址为模拟地址,技术场景与实际完全一致):

  • Swagger文档的访问入口为my-company.com/chris,使用HTTP或HTTPS协议访问时问题复现情况一致
  • 访问上述入口时,页面自动请求的静态资源地址为my-company.com/swaggerui/swagger-ui.css
  • 实际上静态资源可通过my-company.com/chris/swaggerui/swagger-ui.css正常访问
  • 曾尝试通过修改root_path参数调整资源根路径(即上述Blueprint配置中的尝试),但配置未生效,也不确定该参数是否为解决问题的正确配置项。

我已耗时一周排查该问题仍未找到可行解决方案,恳请各位提供解决思路。


内容的提问来源于stack exchange,提问作者Chris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 21:48:48