1

我正在尝试使用 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/myfileurl/my-prefix/swagger.json) 的代码源中引用,但无法从此 url 访问 swaggerui 文件。你知道我应该添加什么以使它可以在这个 url 上访问:url/my-prefix/swaggerui/myfile

4

0 回答 0