Mehrere statische Verzeichnisse in Python Tornado
Frage
Ich habe eine Verzeichnisstruktur Setup wie:
root/
js/
css/
libs/
index.html
Von Tornado, ich will js, css, und Libs als statische Verzeichnisse dienen, aber ich kann nur herausfinden, wie einen von ihnen zu dienen. Kann dies geschehen?
Lösung
Nein, es ist nicht möglich.
Sie könnten natürlich einen neuen Ordner erstellen - Eltern und Ort js, css und Libs innerhalb des Ordners, und speciy dann die übergeordneten Ordner als ‚static_path‘
nb. „In der Produktion, möchten Sie wahrscheinlich statische Dateien aus einer optimierteren statischen Dateiserver wie nginx dienen“
Andere Tipps
Wie Schildmeijer von dem Tornado Webseite zitiert, empfehle ich Nginx statische Dateien zu dienen. früh auf dieses Setup zu haben, ist sehr bequem und einfach. Auf diese Weise können Sie auch einige andere potenzielle Vorteile in der Zukunft:
- Verwenden von Nginx für den Lastausgleich
- Verwenden von Nginx Griff SSL
Siehe https://stackoverflow.com/a/10165739/1813988
Sie können den statischen Pfad für verschiedene Assets festlegen, indem Handler wie folgt aus (und entfernen Sie die static_path
Einstellung in Anwendung) Einstellung:
handlers = [ (r'/favicon.ico', tornado.web.StaticFileHandler, {'path': favicon_path}), (r'/static/(.*)', tornado.web.StaticFileHandler, {'path': static_path}), (r'/', WebHandler) ]