2013-02-16 6 views
6

Ich habe statische Sphinx-Dokumentationen lokal erstellt (mit make html).Sphinx-Dokumentation in einer laufenden Flask-Web-Anwendung

Ich möchte jetzt die Sphinx-Dateien in meine Webapp integrieren, die mit Flask läuft. Von der Flask Running-Anwendung möchte ich einfach einen Hyperlink zur Sphinx-Dokumentation hinzufügen, der als Hilfe für die Anwendung dient.

Websupport scheint der Weg zu folgen, aber es ist mir nicht klar, wie ich das Flask-Framework zu den Sphinx-Dateien überbrücken sollte. mit Ihrem Web-Server, behandeln Sie die gleiche Art und Weise das /static Verzeichnis in Flask

Vielen Dank für jede Hilfe,

Grüße

Antwort

5

Sie es einfach umgehen konnten. Wenn Sie zum Beispiel Apache als Produktions-Web-Server verwendet, können Sie

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

zu Ihrer Apache-Site-Konfiguration, fügen Sie so dann könnte man einfach direkt verlinken auf http://yoursite.com/documentation, um die Sphinx auf Dateien zugreifen, die Vermeidung insgesamt Flask.

2

können Sie kopieren die _build/html Ordner aus Ihren Dokumenten zu einem doc Ordner in Ihrem Kolben static Verzeichnis und sie dienen mit folgenden Regel:

@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

Woher bekommst du "beitreten"? Vielleicht verwenden Sie etwas wie "os.path.join (dir, filename)" – spitz

+1

Dies führt auch zu einem 404, wenn "dir" und "filename" nicht angegeben sind. – spitz

1

In einigen Fällen Sie nicht wollen Ihre Dokumente aussetzen Alle Benutzer, die auf Apache- oder Nginx-Ebene konfigurieren, sind keine Option. Folgendes funktionierte für mich:

@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) 
Verwandte Themen