Seite 2 von 2

Re: css in bottle template

Verfasst: Mittwoch 9. Mai 2012, 11:10
von /me
lackschuh hat geschrieben:Das mit dem Root-Pfad kapiere ich auch noch nicht so ganz.

Ich hab lokal in einem Ordner c:\Homepage bottle.py, home.py und layout.tpl liegen. Des Weiteren habe ich, wie oben beschrieben, folgende Unterordner gemacht: /var/www und im Ordner www sind die Ordner css, js, img.
/var/www ist ein Ordner unter Linux (bzw. Unix).

Die Frage ist, wo du den Ordner wirklich erstellt hast. Der Slash am Anfang des Pfades bedeutet, dass du auf der obersten Ebene der Ordnerhierarchie beginnst. Bei Windows bezieht sich das meines Wissens dann auf das aktuell gewählte Laufwerk. Ist dein Pfad also wirklich /var/www oder ist es C:\Homepage\var\www?

Re: css in bottle template

Verfasst: Mittwoch 9. Mai 2012, 12:15
von lackschuh
/me hat geschrieben: /var/www ist ein Ordner unter Linux (bzw. Unix).

Die Frage ist, wo du den Ordner wirklich erstellt hast. Der Slash am Anfang des Pfades bedeutet, dass du auf der obersten Ebene der Ordnerhierarchie beginnst. Bei Windows bezieht sich das meines Wissens dann auf das aktuell gewählte Laufwerk. Ist dein Pfad also wirklich /var/www oder ist es C:\Homepage\var\www?
Ach so.., der Pfad ist neu C:\Projekt\Homepage\www
Darin (im Ordner www) sind die Ordner css, js, img, thumbs usw. Im Hauptordner ist das bottle.py und home.py und die Templates.

mfg

Re: css in bottle template

Verfasst: Mittwoch 9. Mai 2012, 12:57
von /me
lackschuh hat geschrieben:Ach so.., der Pfad ist neu C:\Projekt\Homepage\www
Dann müsste in deinem bisherigen Code die Definition des Pfades auch entsprechend aussehen:

Code: Alles auswählen

static_folder = 'C:\\Projekt\\Homepage\\www'
Der doppelte Backslash ist erforderlich, da der Backslash als Escape-Zeichen dient und bei Folgen wie "\t" nicht die beiden Zeichen "\" und "t", sondern ein Tabulatorzeichen im String erzeugt. Zwei Backslashes führen dazu, dass im String hinterher genau einer vorhanden ist.

Re: css in bottle template

Verfasst: Mittwoch 9. Mai 2012, 13:19
von lackschuh
Hi

Super, funktioniert.

Re: css in bottle template

Verfasst: Donnerstag 4. Oktober 2012, 19:47
von friedduck
Sorry das ich den Beitrag wieder rauskrame, hatte grad das gleiche Problem. Meine Lösung sieht so aus:

Code: Alles auswählen

@route('/css/:filename')
def server_static(filename):
    return static_file(filename, root=os.path.join(os.path.abspath('.'),'css'))
Das dazugehörige CSS:

Code: Alles auswählen

<link rel="stylesheet" type="text/css" href="/css/main.css" />
Und hier noch was zur besseren Verständniss:

Code: Alles auswählen

tpl = os.path.join(os.path.abspath('.'),'tpl')
css = os.path.join(os.path.abspath('.'),'css')
print(tpl,css)
Die Augabe von print:

Code: Alles auswählen

C:\projekte\bottle\src\tpl C:\projekte\bottle\src\css
Nicht vergessen:

Code: Alles auswählen

import sys, os
Vll. kanns ja jmd. gebrauchen.

MfG Friedduck

Re: css in bottle template

Verfasst: Donnerstag 4. Oktober 2012, 20:04
von BlackJack
@friedduck: Es ist ein bisschen sinnfrei `os.path.join()` zu verwenden wenn man dann doch in einem der Teile einen expliziten Systemabhängigen Pfadtrenner stehen hat. Lass den einfach weg, der ist überflüssig.

Re: css in bottle template

Verfasst: Donnerstag 4. Oktober 2012, 20:09
von friedduck
Du hast recht, das Beispiel würde nicht unter Linux laufen, habs jetzt korrigiert.