Seite 1 von 1
Django-Seite wird nicht ordentlich dargestellt
Verfasst: Dienstag 17. Juni 2008, 18:02
von martin101986
Hallo,
ich arbeite gerade mit dem Django-Framework. Ich habe nun eine HTML Seite erstellt.
Diese wollte ich nun mit über die Funktion render_to_response aus dem Paket django.shortcuts zurückgeben lassen. Die Seite wird auch aufgerufen allerdings ohne die ganzen Grafiken und CSS Einstellungen. Ich habe also nur den Text dort stehen.
Wenn ich die Html Datei direkt aufmache stellt er die Seite richtig dar. Hat jemand eine Idee was ich falsch mache bzw. beachten muss? Liegt es eventuell an den Pfadangaben in der HTML Datei?
Mfg
Martin
Verfasst: Dienstag 17. Juni 2008, 18:03
von Leonidas
Sind denn die Grafiken und CSS-Dateien verfügbar? Was passiert, wenn du die URLs der Grafiken manuell aufrufst?
Verfasst: Dienstag 17. Juni 2008, 18:19
von martin101986
Hallo Leonidas,
ja die Dateien sind verfügbar. Wenn ich die URL der Grafik aufrufe klappt es auch.
Zur Info: ich arbeite zurzeit lokal mit dem Entwicklungsserver von Django.
Verfasst: Dienstag 17. Juni 2008, 18:29
von Leonidas
martin101986 hat geschrieben:ja die Dateien sind verfügbar. Wenn ich die URL der Grafik aufrufe klappt es auch.
Könntest du etwa die von Django ausgegebene HTML-Seite pasten, etwa ins Lodgeit?
Verfasst: Dienstag 17. Juni 2008, 18:55
von martin101986
Hab jetzt die von Django ausgegebene Seite gespeichert. FIndest du unter:
http://paste.pocoo.org/show/72121/
Ich habe auch schon den Fehler gesehen. Er ersetzt mir die Pfadangaben bei den BIldern und zur CSS Datei.
Wieso macht er das?
Verfasst: Dienstag 17. Juni 2008, 19:21
von Leonidas
martin101986 hat geschrieben:Ich habe auch schon den Fehler gesehen. Er ersetzt mir die Pfadangaben bei den BIldern und zur CSS Datei.
Wieso macht er das?
Sowas macht Django nicht. Poste am besten auch mal dein Template.
Verfasst: Dienstag 17. Juni 2008, 19:26
von martin101986
Verfasst: Dienstag 17. Juni 2008, 22:13
von Leonidas
Das ist echt seltsam. Bessere mal dein Template aus (Pygments zeigt dir sogar die Fehler an) und zeig mal den View, der das Template rendert. Welche Middlewares nutzt du?
Verfasst: Mittwoch 18. Juni 2008, 16:16
von martin101986
Hallo,
anbei der Code aus der views.py:
Code: Alles auswählen
from django.shortcuts import render_to_response
from django.template import Context
from django.http import HttpResponse
def site(request):
f=open('/home/martin/Development/Python/mysite/templates/h.txt','rb')
return HttpResponse(f.read())
#return render_to_response('vorlage.html', {})
[/code]
Ich habe es mit HttpResponse und mit render_to_response probiert. Bei beiden Arten der gleich Fehler.
Anbei die Middlewares:
Code: Alles auswählen
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.middleware.doc.XViewMiddleware',
)
Das mit Pygments werde ich noch ausprobieren.
Grüße
Martin
Verfasst: Donnerstag 19. Juni 2008, 09:18
von jens
Lokaler dev. Server? Dann müssen auch statische Dateien ausgeliefert werden.
CSS Dateien am besten mit absoluter URL einbiden...
Verfasst: Donnerstag 19. Juni 2008, 16:45
von martin101986
Hallo Jens,
hat leider nicht geklappt mit den absoluten Pfaden.
Ich habe mal im Django IRC nachgefragt und da hat mir jemand gesagt dass ich diese Zeile in meine urls.py einfügen soll:
Code: Alles auswählen
(r'^site_media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': '/path/to/media'}),
Das mit dem document_root ist klar, das ist der Pfad wo sich die bilder, css dateien etc. befinden. Kann mir jetzt noch jemand sagen was ich bei der url angeben soll?
Ich werde aus der Beschreibung in der Doku nicht so ganz schlau.
http://www.djangoproject.com/documentat ... tic_files/
Kann mir da von euch jemand weiterhelfen?
Weil wir gerade dabei sind, entwickelt Ihr gleich im Internet auf einen richtigen Webserver oder auch zuerst lokal mit dem Entwicklungsserver?
Grüße Martin
Verfasst: Donnerstag 19. Juni 2008, 16:48
von jens
martin101986 hat geschrieben:Code: Alles auswählen
(r'^site_media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': '/path/to/media'}),
Pack eine Datei nach /path/to/media/Beispiel.css und adressiere sie im html code mit /site_media/Beispiel.css
Jetzt klar?
Verfasst: Donnerstag 19. Juni 2008, 17:03
von martin101986
Ja alles klar, habs gerade ausprobiert und funktioniert!
Danke für eure Hilfe