Seite 1 von 1

Bottle: Problem mit static_file

Verfasst: Dienstag 12. Oktober 2010, 20:01
von noisefloor
Hallo,

folgender Code:

Code: Alles auswählen

from bottle import route, static_file
import os.path

graph_root = 'home/zu/mir/'

@route('/graphen/:name')
def send_graph(name):
    static_file(name,os.path.join(graph_root,'graphen'))
liefert nichts zurück (auch keinen Fehler), auch wenn man für `name` eine existierenden Datei (z.B. "bild.png") angibt.

Ersetzt man aber `static_file` durch das veraltete `send_file` funktioniert das 1A.

Und ich weiß nicht, warum... :(

Gruß, noisefloor

Re: Bottle: Problem mit static_file

Verfasst: Dienstag 12. Oktober 2010, 21:41
von noisefloor
Hallo,

Problem gelöst: Die Route muss auf `/static` enden, dann funktioniert es mit `static_file`.
`send_file` kann dann wohl - im Gegensatz zu `static_file` - aus jedem Verzeichnis senden.

@Defnull: Schreib das doch mal explizit in die Doku rein. :-)

Gruß, noisefloor

Re: Bottle: Problem mit static_file

Verfasst: Mittwoch 13. Oktober 2010, 00:31
von Defnull
Eigentlich tun send_file() und static_file() exakt das selbe, mit dem Unterschied das send_file() ne exception wirft und static_file() das file-objekt nur zurück gibt (und das ist auch genau so dokumentiert). Dein erstes Beispiel kann also gar nicht funktionieren, da das 'return' vor dem 'static_file()' fehlt.

Die Route muss auch nicht auf '/static' enden. Ich weis nicht, wie du darauf kommst.

Re: Bottle: Problem mit static_file

Verfasst: Mittwoch 13. Oktober 2010, 21:48
von noisefloor
Hallo,
Dein erstes Beispiel kann also gar nicht funktionieren, da das 'return' vor dem 'static_file()' fehlt.
Ich dachte ja erst, dass es ein C&P Fehler ist... ist es aber nicht. Habe wirklich das `return` vergessen. Wie peinlich. :oops:

Mit `return` funktioniert es auch mit `static_file`.

Kann mal ein Moderator diesen Thread löschen oder zumindest verstecken? Dann ist es nicht mehr ganz so peinlich. 8)

Gruß, noisefloor

Re: Bottle: Problem mit static_file

Verfasst: Donnerstag 14. Oktober 2010, 16:43
von jbs
noisefloor hat geschrieben:Hallo,
Dein erstes Beispiel kann also gar nicht funktionieren, da das 'return' vor dem 'static_file()' fehlt.
Ich dachte ja erst, dass es ein C&P Fehler ist... ist es aber nicht. Habe wirklich das `return` vergessen. Wie peinlich. :oops:

Mit `return` funktioniert es auch mit `static_file`.

Kann mal ein Moderator diesen Thread löschen oder zumindest verstecken? Dann ist es nicht mehr ganz so peinlich. 8)

Gruß, noisefloor
Wie hieß nochmal die Funktion, Announcement, oder?