2013-02-16 8 views
6

Mam lokalnie zbudowane statyczne dokumentacje Sphinx (przy użyciu make html).Dokumentacja Sphinx wewnątrz aplikacji internetowej do obsługi kolektora

Chciałbym teraz zintegrować pliki Sphinx z moją aplikacją internetową, która działa z Flask. Z aplikacji do uruchamiania Flask, mam na myśli hiperłącze do dokumentacji Sphinx, które posłuży jako pomoc dla aplikacji.

Websupport wydaje się być sposobem naśladowania, ale nie jest dla mnie jasne, w jaki sposób powinienem połączyć strukturę Flask z plikami Sphinx.

Dzięki za wszelką pomoc,

Pozdrowienia

Odpowiedz

5

Można tylko poradzić z serwerem WWW, w ten sam sposób można obsłużyć katalog w Kolby /static. Na przykład, jeśli stosowane Apache jako produkcyjnym serwerze WWW, można dodać

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

na swojej stronie konfiguracji Apache, więc wtedy można po prostu odwołują się bezpośrednio do http://yoursite.com/documentation aby uzyskać dostęp do plików Sphinx, unikając Flask całkowicie.

2

można skopiować folder _build/html z Twoich dokumentów do folderu doc w katalogu kolba static i służyć im z następującą zasadą:

@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

Skąd się bierze "dołącz"? Może użyć czegoś takiego jak "os.path.join (dir, filename)" – spitz

+1

To również prowadzi do 404, chyba że podano "dir" i "filename". – spitz

1

W niektórych przypadkach nie chcesz, aby odsłonić swoje dokumenty do wszyscy użytkownicy, więc konfiguracja na poziomie Apache lub Nginx nie jest opcją. Dla mnie działało:

@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) 
Powiązane problemy