Flask 更改swagger捆绑包javascript的根路径

Flask 更改swagger捆绑包javascript的根路径,flask,swagger,flask-restful,Flask,Swagger,Flask Restful,我在为我的flask应用程序配置Swagger时遇到了问题,该应用程序作为一个微服务部署在另一个父项目下 如图所示,Swagger的静态文件是这样加载的 这导致了问题,因为.js试图从根路径解析,而根路径是我不控制的父应用程序 在哪里指定Swagger,以便在加载这些Javascript时查找自定义路径?只需在前面添加一个点就可以解决问题 我的代码是这样的 from flask import Flask, Blueprint from flask_restplus import Api ap

我在为我的flask应用程序配置Swagger时遇到了问题,该应用程序作为一个微服务部署在另一个父项目下

如图所示,Swagger的静态文件是这样加载的

这导致了问题,因为
.js
试图从根路径解析,而根路径是我不控制的父应用程序

在哪里指定Swagger,以便在加载这些Javascript时查找自定义路径?只需在前面添加一个点就可以解决问题

我的代码是这样的

from flask import Flask, Blueprint
from flask_restplus import Api

app = Flask(__name__)
blueprint = Blueprint('api', __name__, url_prefix='/api')
api = Api(blueprint, doc='/doc/')
app.register_blueprint(blueprint)

通过覆盖默认模板的
swagger\u static
并通过
spec\u url
传递必要的路径,我们可以潜在地更改swagger查找html和json的路径

完整的解决方案如下所示

@apidoc.apidoc.add_app_template_global
def swagger_static(filename):
    return "./swaggerui/{0}".format(filename)

api = Api(app)

@api.documentation
def custom_ui():
    return render_template("swagger-ui.html", title=api.title, specs_url="./swagger.json")
链接Github讨论