将Sphinx与Flask一起使用并保留格式

时间:2019-02-06 22:25:20

标签: flask python-sphinx

我用Sphinx生成了一些Python文档。如果我进入build / html目录并直接打开index.html,我将获得Sphinx格式。

如果我尝试使用以下代码在同一页面Flask中提供服务,则会得到该页面,但所有Sphinx格式均已消失:

from flask import send_from_directory

@app.route('/help')
def help():
    return send_from_directory('/sphinx/build/html', 'index.html')

我直接在调试模式下使用app.run调用Flask。这就是我喜欢的方式。我知道如何在Apache中进行设置,但我不想运行Apache。是否可以在Flask中提供Sphinx并仍然获得格式,还是我绝对必须运行像Apache这样的Web服务?

1 个答案:

答案 0 :(得分:1)

使用在静态文件夹/sphinx/build下生成的html文件./static/sphinx/build复制您的Sphinx文档文件夹。

然后使用Jinja进行链接:

<a href="{{ url_for('static', filename='sphinx/build/html/index.html') }}">Documentation</a>

本地服务器上生成的url类似于以下内容:

http://127.0.0.1:5000/static/sphinx/build/html/index.html

在部署您的应用程序后,请用符号链接替换新目录,因此无需在每次构建文档时都复制/sphinx/build文件夹。