Seite 1 von 1

jinja2 - die .css bekommen

Verfasst: Dienstag 19. Oktober 2010, 10:05
von Sync32
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?

Re: jinja2 - die .css bekommen

Verfasst: Dienstag 19. Oktober 2010, 11:33
von lunar
Du musst schon die URL des Stylesheets angeben. Mit dem Dateisystempfad auf dem Server kann der Webbrowser logischerweise wenig anfangen.

Re: jinja2 - die .css bekommen

Verfasst: Dienstag 19. Oktober 2010, 12:55
von Sync32
die main.css und base.html liegen doch in dem selben verzeichnis

Re: jinja2 - die .css bekommen

Verfasst: Dienstag 19. Oktober 2010, 13:19
von Leonidas
Aber der Webserver muss sie dennoch an den Client ausliefern und der Client muss irgendwie auf das CSS zugreifen können.

Re: jinja2 - die .css bekommen

Verfasst: Dienstag 19. Oktober 2010, 13:37
von Sync32
und wie mache ich das nu mit der url?

Re: jinja2 - die .css bekommen

Verfasst: Dienstag 19. Oktober 2010, 13:42
von lutz.horn
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?

Re: jinja2 - die .css bekommen

Verfasst: Dienstag 19. Oktober 2010, 13:46
von Sync32
benutze ch errypy

Re: jinja2 - die .css bekommen

Verfasst: Dienstag 19. Oktober 2010, 13:56
von lutz.horn
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?

Re: jinja2 - die .css bekommen

Verfasst: Dienstag 19. Oktober 2010, 15:01
von Sync32
danke