jinja2 - die .css bekommen

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
Sync32
User
Beiträge: 141
Registriert: Mittwoch 27. Januar 2010, 12:42

ich verwende die templatelanguage jinja2
hab mir nun ein base.html angelegt, was meine hauptschablone ist und davon leite ich alle anderen unterseiten ab

aber leider bekomme ich nicht den richtigen pfad zur main.css raus:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
{% block head %}
<title>{% block title %}{% endblock %} - My Webpage</title>
<link rel="stylesheet" type="text/css" href="main.css" />
{% endblock %}
</head>
<body>
.....
Wenn ich mein Webscript aufrufe, findet er meine main.css nicht.
Den Templates Ordner habe ich so angegeben:

Code: Alles auswählen

env = Environment(loader=FileSystemLoader('templates'))
Hab auch schon ...
<link rel="stylesheet" type="text/css" href="templates/main.css" />
probiert aber die findet er denn anschließend beim Aufruf auch nicht.

Also es kommt kein error oder so aber er setzt das stylesheet halt nicht, weil der pfad irgendwie anscheinend falsch ist... ne idee wie der richtig lauten könnte?
lunar

Du musst schon die URL des Stylesheets angeben. Mit dem Dateisystempfad auf dem Server kann der Webbrowser logischerweise wenig anfangen.
Sync32
User
Beiträge: 141
Registriert: Mittwoch 27. Januar 2010, 12:42

die main.css und base.html liegen doch in dem selben verzeichnis
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Aber der Webserver muss sie dennoch an den Client ausliefern und der Client muss irgendwie auf das CSS zugreifen können.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Sync32
User
Beiträge: 141
Registriert: Mittwoch 27. Januar 2010, 12:42

und wie mache ich das nu mit der url?
Benutzeravatar
lutz.horn
User
Beiträge: 205
Registriert: Dienstag 8. November 2005, 12:57
Wohnort: Pforzheim

Es geht eigentlich nicht darum, ob die CSS-Datei neben dem HTML-Template liegt, was ich ohnehin für keine gute Idee halte. Welches Web-Framework verwendest Du? Liegt die CSS-Datei für das Web-Framework logisch neben den erzeugten Seiten?
https://www.xing.com/go/invite/18513630.6a91d4
Sync32
User
Beiträge: 141
Registriert: Mittwoch 27. Januar 2010, 12:42

benutze ch errypy
Benutzeravatar
lutz.horn
User
Beiträge: 205
Registriert: Dienstag 8. November 2005, 12:57
Wohnort: Pforzheim

Ist Deine Verzeichnisstruktur so ähnlich wie diese?

Code: Alles auswählen

my_cherrypy_application.py
templates/
templates/base.html
templates/main.css
Dann kommt es sehr darauf an, wie Deine CherryPy-Anwendung konfiguriert ist. Statische Dateien wie CSS-Dateien haben jedenfalls nichts mit Jinja2-Templates zu tun.

Schau Dir mal http://www.cherrypy.org/wiki/StaticContent an.

@Moderator: Wie wäre es, diesen Thread nach Webframeworks zu verschieben?
https://www.xing.com/go/invite/18513630.6a91d4
Sync32
User
Beiträge: 141
Registriert: Mittwoch 27. Januar 2010, 12:42

danke
Antworten