我正在尝试使用 flask-restx 包部署一个应用程序烧瓶,但我一直坚持如何在产品服务器上正确显示文档。它在本地运行良好,没有任何前缀,但在服务器上,文件 url 需要加上前缀my-prefix
,我正在努力使 swaggerui 文件可以从 url 访问:url/my-prefix
这是我的代码:
app = Flask(__name__)
api = Api(
app,
version='3.0',
title='My API',
description='My API',
doc="/my-prefix/docs/",
prefix="/my-prefix",
base_url="/my-prefix"
)
有了这个,我得到了swagger.json
很好的 url,但在文档页面的代码源中没有正确的引用。swaggerui 文件在文档页面的代码源中没有很好地引用,在可访问的 url/my-prefix/swaggerui/files
.
所以我添加了这个:
@apidoc.apidoc.add_app_template_global
def swagger_static(filename):
return f"/my-prefix/swaggerui/{filename}"
api = Api(
app,
version='3.0',
title='My API',
description='My API',
doc="/my-prefix/docs/",
prefix="/my-prefix",
base_url="/my-prefix"
)
@api.documentation
def custom_ui():
return render_template("swagger-ui.html", title=api.title, specs_url="/my-prefix/swagger.json")
这样,swaggerui 文件和 swagger.json 文件可以方便地在文档页面 (url/my-prefix/swaggerui/myfile
和url/my-prefix/swagger.json
) 的代码源中引用,但无法从此 url 访问 swaggerui 文件。你知道我应该添加什么以使它可以在这个 url 上访问:url/my-prefix/swaggerui/myfile