2013-02-16 9 views
6

私は静的なスフィンクスドキュメントを(make htmlを使用して)ローカルに構築しました。ウェブアプリケーションを実行しているFlask内のSphinxドキュメント

私は今、Flaskで動作するWebアプリケーションにSphinxファイルを統合したいと考えています。 Flaskを実行しているアプリケーションからは、アプリケーションのヘルプとして役立つ、Sphinxのドキュメントへのハイパーリンクを含めることを意味します。

Websupportのように見えますが、どのようにFlaskフレームワークをSphinxファイルに橋渡しするべきかはわかりません。任意の助け

おかげで、

よろしく

答えて

5

は、あなたは自分のウェブサーバー、あなたはフラスコ内の/staticディレクトリを扱うのと同じ方法でそれを扱うことができます。本番WebサーバとしてApacheを使用した場合たとえば、あなたはあなたのApacheのサイト構成に

Alias /documentation /location/of/sphinx/html 
<Directory /location/of/sphinx/html> 
    Order deny,allow 
    Allow from all 
</Directory> 

が追加される場合がありますので、あなただけの完全にフラスコを避け、スフィンクスのファイルにアクセスするためにhttp://yoursite.com/documentationに直接リンクすることができます。

2

あなたのフラスコstaticディレクトリにdocフォルダにドキュメントから_build/htmlフォルダをコピーして、次のルールでそれらを提供することができます

@app.route('/doc/<dir>/<filename>', defaults={'static': True}) 
def doc(dir='',filename='index.html'): 
    path = join(dir,filename) 
    return app.send_static_file(path) 
+0

どこから "参加"しますか?たぶん "os.path.join(dir、filename)"のようなものを使うかもしれません。 – spitz

+1

これは、 "dir"と "filename"が指定されていない限り、404にもつながります。 – spitz

1

あなたがにあなたのドキュメントを公開したくないいくつかのケースではApacheやNginxレベルで設定するすべてのユーザーはオプションではありません。以下は私のために働いた:

@app.route('/docs', defaults = {'filename': 'index.html'}) 
@app.route('/docs/<path:filename>') 
@login_required 
def web_docs(filename): 
    path = os.path.join('docs/html', filename) 
    return app.send_static_file(path) 
関連する問題