Board
»
Django das Framework
»
Probleme & Fragen
»
Probleme mit CSS Datei
|
Posted by z00m |
|
|
Hallo zusammen,
ich habe Probleme beim Einbinden von CSS Dateien. Im Ersten Moment koennte man denken, dass das nicht viel mit Django zu tun hat, aber ich glaube das es an Django liegt. Denn wenn ich die Ausgabe des Servers (Testserver unter Windows) richtig deute, laedt er die layout.css aus dem richtigen Verzeichniss ("GET /site_media/css/layout.css HTTP/1.1" 404 2063"). Aber es hat einfach keine Auswirkung. Die Seite ist genau wie vorher Achso und meine JavaScript Dateien bindet es auch nicht ein. Wodran kann das liegen ? Vielleicht an der settings.py ? Kurz meine Einstellung: Windows XP, Django revision 7397, XHTML. Ich binde die externe CSS Datei mit folgender Zeile ein: <link rel="stylesheet" href="/site_media/css/layout.css" type="text/css" media="screen, projection" /> Auszug aus meiner settings.py: BASEDIR = os.path.dirname(os.path.abspath(__file__)).replace('\\','/') MEDIA_ROOT = os.path.join(BASEDIR, 'site_media') MEDIA_URL = '/media/' ADMIN_MEDIA_PREFIX = '/admin_media/' WEB_ROOT = os.path.join(BASEDIR, 'static_cache/htdocs/') Waere super wenn mir jemand helfen koennte |
|
|
Posted by sascha ![]() |
|
|
Hast du mal "/css/layout.css" statt "/site_media/css/layout.css" in deinem Template probiert?
Wenn du in deiner Browser Adressleiste die URL zur CSS Datei angibst, öffnet sich die CSS Datei dann? |
|
|
Posted by z00m |
|
|
Also nur "/css/layout.css" oder "/media/css/layout.css" bringt auch nichts. Hab auch ein paar Variationen davon versucht.
Und im Browser findet er die CSS Datei nicht wenn ich die URL dazu angebe ! Vielleicht sollte ich meine Verzeichnissstruktur auch mal angeben: /project/site_media/css/ /project/templates/ Und ich hab jetzt mal den Sourcecode von einem Beispiel auf der Seite http://www.djangosites.org/ angeschaut. Selbst wenn ich das eins zu eins uebernehm, funktioniert es nicht |
|
|
Posted by sascha ![]() |
|
|
Hey ,sorry das ich mich erst so spät melde. Momentan lerne ich für Klausuren.
Hast du in der urls.py eventuell Verzeichnisse hinterlegt? Bin mir monetan nicht ganz sicher ob das auch für den dev. Server gilt.... Beispiel: #css and image folders (r'^images/(?P<path>.*)', 'django.views.static.serve', {'document_root': MEDIA_ROOT+'/images', 'show_indexes': False}), (r'^css/(?P<path>.*)', 'django.views.static.serve', {'document_root': MEDIA_ROOT+'/css', 'show_indexes': False}), (r'^uploads/(?P<path>.*)', 'django.views.static.serve', {'document_root': MEDIA_ROOT+'/uploads', 'show_indexes': False}), |
|
|
Posted by z00m |
|
|
Danke aber es funktioniert immernoch nicht. Ich glaube, dass ich irgendwo noch eine Kleinigkeit uebersehen habe.
Was muss ich denn alles beachten bei der Einbindung ? Sind die Verzeichnisse richtig ? Ist in der settings.py die MEDIA oder MEDIA_ROOT vielleicht falsch ? Binde ich die CSS Datei mit dem richtigen Verzeichnis ein ? |
|
|
Posted by z00m |
|
|
Ah endlich funktionierts! Habe jetzt folgende Einstellung (nur falls auch mal jemand dieselben Probleme hat)
Die CSS Datei liegt in: /PROJECT/site_media/css/ Die Templates in: /PROJECT/templates/ settings.py: BASEDIR = os.path.abspath(os.path.dirname(__file__)) DEBUG = True MEDIA_ROOT = BASEDIR + '/site_media/' MEDIA_URL = '/media/' ADMIN_MEDIA_PREFIX = '/admin_media/' urls.py: from django.conf import settings
if settings.DEBUG:
urlpatterns += patterns('',
(r'^media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}),
)base.html: <link rel="stylesheet" href="{{ MEDIA_URL }}css/base.css" type="text/css" media="screen, projection" /> |
|
|
Posted by sascha ![]() |
|
|
Spitze, dass du es selbst geschafft hast! ;D
Bald habe ich auch wieder mehr Zeit für Django !!! |

