Seite 1 von 1
tornado static file handler
Verfasst: Mittwoch 15. Januar 2020, 13:17
von tschaka81
Hallo an alles,
ich versuche gerade mit Tornado einen StaticFileHandler zu erstellen
dazu habe ich einen Code a la
Code: Alles auswählen
("/foo/bar/test.js", StaticFileHandler, {"path": "/path/to/testjs"})
genutzt. Wenn ich meinen Server starte erwarte ich in /foo/bar eine Datei mit test.js. Allerdings bekomme ich ein 404 zurück. Es wurde also keine Datei gefunden. Muss die Datei zwingend im Verzeichnis foo/bar liegen?
Was mache ich falsch?
Schöne Grüße
Markus
Re: tornado static file handler
Verfasst: Mittwoch 15. Januar 2020, 13:24
von Sirius3
StaticFileHandle ist dazu gedacht, ganze Verzeichnisbäume unterhalb von `path` bereitzustellen.
Aus der Dokumentation:
Note that a capture group in the regex is required to parse the value for the path argument to the get() method (different than the constructor argument above); see URLSpec for details.
Also:
Code: Alles auswählen
("/foo/bar/(test\.js)", StaticFileHandler, {"path": "/path/to/testjs"})
würde nur eine Datei `/path/to/testjs/test.js` unter der URL
http://xxx/foo/bar/test.js bereitstellen.
Re: tornado static file handler
Verfasst: Mittwoch 15. Januar 2020, 13:31
von tschaka81
Sirius3 hat geschrieben: Mittwoch 15. Januar 2020, 13:24
StaticFileHandle ist dazu gedacht, ganze Verzeichnisbäume unterhalb von `path` bereitzustellen.
Aus der Dokumentation:
Note that a capture group in the regex is required to parse the value for the path argument to the get() method (different than the constructor argument above); see URLSpec for details.
Also:
Code: Alles auswählen
("/foo/bar/(test\.js)", StaticFileHandler, {"path": "/path/to/testjs"})
würde nur eine Datei `/path/to/testjs/test.js` unter der URL
http://xxx/foo/bar/test.js bereitstellen.
Hi Sirius,
leider funktioniert das auch nicht bei mir, Immer noch 404.
Re: tornado static file handler
Verfasst: Mittwoch 15. Januar 2020, 13:50
von Sirius3
Dann zeig doch mal mehr, Code, Logausgabe, etc.
Re: tornado static file handler
Verfasst: Mittwoch 15. Januar 2020, 14:02
von tschaka81
Hi,
ich habe gerade das Problem entdeckt:
ich hatte vorher einen StaticFileHandler schon einmal definiert. Da hatte ich ein (.*) auf das gleiche Webverzeichnis angewandt.
also
Code: Alles auswählen
("/foo/bar/(.*)", StaticFileHandler, {"path": "/anotherpath/to/somewhere"})
("/foo/bar/js/(test\.js)", StaticFileHandler, {"path": "/path/to/testjs"})
Scheinbar kann man dann nicht mehr einzelne Dateien nachschieben. Also hier in /foo/bar. Das ist dann blockiert. Das ist schade. Ich habe jetzt die Adresse zu einem separaten Unterverzeichnis geschoben (/foo/bar2) und es ging.
Gibt es hier eine eleganter Lösung?
Re: tornado static file handler
Verfasst: Mittwoch 15. Januar 2020, 14:09
von __blackjack__
@tschaka81: Das in eine sinnvolle Reihenfolge bringen‽ Ich meine es ist doch klar das das so herum nicht funktionieren konnte. "/foo/bar/(.*)" trifft halt auch auf "/foo/bar/test.js" zu.
Re: tornado static file handler
Verfasst: Donnerstag 16. Januar 2020, 08:21
von tschaka81
__blackjack__ hat geschrieben: Mittwoch 15. Januar 2020, 14:09
@tschaka81: Das in eine sinnvolle Reihenfolge bringen‽ Ich meine es ist doch klar das das so herum nicht funktionieren konnte. "/foo/bar/(.*)" trifft halt auch auf "/foo/bar/test.js" zu.
Im Nachhinein gesehen, kann ich dem nur zustimmen.
