在运行Web应用程序的Flask中的Sphinx文档

man*_*aia 11 flask python-sphinx

我在本地构建了静态Sphinx文档(使用make html).

我现在希望将Sphinx文件集成到我使用Flask运行的webapp中.在Flask运行应用程序中,我只是想包含一个指向Sphinx文档的超链接,它将作为应用程序的帮助.

Websupport似乎是要遵循的方式,但我不清楚如何将Flask框架与Sphinx文件联系起来.

谢谢你的帮助,

问候

Gus*_*rra 8

其他解决方案很好地省略了Flask对象初始化,这导致我将头部撞到墙上一会儿。

完全不接触Sphinx项目结构的情况,以下是对我有用的解决方案:

from flask import Flask

app = Flask(__name__, static_url_path='/', static_folder='_build/html/')


@app.route('/')
@app.route('/<path:path>')
def serve_sphinx_docs(path='index.html'):
    return app.send_static_file(path)


if __name__ == '__main__':
    app.run(debug=True)
Run Code Online (Sandbox Code Playgroud)

下面是项目的文件结构,其中<doc>表示我为文档实际编写的第一个文件,并且app.py是包含上面Flask应用程序代码的文件。

.
??? Makefile
??? _build
?   ??? doctrees
?   ?   ??? index.doctree
?   ?   ??? <doc>.doctree
?   ?   ??? ...
?   ?   ??? <doc>.doctree
?   ??? html
?       ??? _images
?       ??? _modules
?       ?   ??? index.html
?       ?   ??? <package name>
?       ?       ??? ...
?       ??? _sources
?       ?   ??? <doc>.rst.txt
?       ?   ??? ...
?       ?   ??? <doc>.rst.txt
?       ??? _static
?       ?   ??? ajax-loader.gif
?       ?   ??? alabaster.css
?       ?   ??? ...
?       ??? genindex.html
?       ??? index.html
?       ??? objects.inv
?       ??? py-modindex.html
?       ??? search.html
?       ??? searchindex.js
?       ??? <doc>.html
?       ??? ...
?       ??? <doc>.html
??? _static
?   ??? custom.css
?   ??? <myimage>.gif
??? _templates
??? app.py
??? conf.py
??? index.rst
??? make.bat
??? <doc>.rst
??? ...
??? <doc>.rst
Run Code Online (Sandbox Code Playgroud)


Doo*_*beh 6

您可以使用Web服务器处理它,就像/static在Flask中处理目录一样.例如,如果您使用Apache作为生产Web服务器,则可以添加

Alias /documentation /location/of/sphinx/html
<Directory /location/of/sphinx/html>
    Order deny,allow
    Allow from all
</Directory>
Run Code Online (Sandbox Code Playgroud)

到你的Apache站点配置,那么你可以直接链接http://yoursite.com/documentation到访问Sphinx文件,完全避免使用Flask.