tornado static file handler

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
tschaka81
User
Beiträge: 31
Registriert: Donnerstag 24. Januar 2019, 08:15

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
Sirius3
User
Beiträge: 18225
Registriert: Sonntag 21. Oktober 2012, 17:20

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.
tschaka81
User
Beiträge: 31
Registriert: Donnerstag 24. Januar 2019, 08:15

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.
Sirius3
User
Beiträge: 18225
Registriert: Sonntag 21. Oktober 2012, 17:20

Dann zeig doch mal mehr, Code, Logausgabe, etc.
tschaka81
User
Beiträge: 31
Registriert: Donnerstag 24. Januar 2019, 08:15

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?
Benutzeravatar
__blackjack__
User
Beiträge: 13931
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@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.
“Java is a DSL to transform big Xml documents into long exception stack traces.”
— Scott Bellware
tschaka81
User
Beiträge: 31
Registriert: Donnerstag 24. Januar 2019, 08:15

__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. :geek:
Antworten