[Django] Statische Inhalte / Bilder anzeigen mal wieder...
Verfasst: Montag 19. November 2007, 22:02
Hi zusammen,
Das Problem wurde schon an vielerlei Ecken diskutiert, doch hat mir bisher nichts weitergeholfen.
Statische Inhalte wie Bilder und CSS Dateien ließen sich auf dem Django Development Server bestens anzeigen/laden (wie hier beschrieben).
Nun ist meine Website fertig und ich möchte Django auf Apache mit mod_python laufen lassen. Funktioniert auch, nur werden eben keine Bilder geladen oder CSS Dateien. Ich bin so vorgegangen, wie hier angegeben.
Diese Zeile habe ich aus meiner URL_CONF entfernt:
In die httpd.conf habe ich dies eingefügt:
Wie ich das verstanden habe, soll die oben genannte Konfiguration in der httpd.conf veranlassen, dass alle Dateien, die sich in "static" befinden und alle URLS mit einem jpg/gif/png am Ende NICHT über Python laufen sollen, sondern vom Apache Server behandelt werden. Damit der Apache die Datein im "static" Verzeichnis auch finden kann, hab ich noch dies in die httpd.conf eingefügt:
Im Verzeichnis "static" innerhalb meines Projektordners befindet sich nun ein Unterverzeichnis "images" in welchem sich ein eine jpg Datei befindet (test.jpg).
Rufe ich jetzt die URL www.mydomain.de/images/test.jpg auf, so wird die "Page not found (404)" Seite von Django angezeigt. Dabei sollten doch z.B. jpegs gar nicht mehr von Python behandelt werden?
Hat jemand einen guten Tipp?
Das Problem wurde schon an vielerlei Ecken diskutiert, doch hat mir bisher nichts weitergeholfen.
Statische Inhalte wie Bilder und CSS Dateien ließen sich auf dem Django Development Server bestens anzeigen/laden (wie hier beschrieben).
Nun ist meine Website fertig und ich möchte Django auf Apache mit mod_python laufen lassen. Funktioniert auch, nur werden eben keine Bilder geladen oder CSS Dateien. Ich bin so vorgegangen, wie hier angegeben.
Diese Zeile habe ich aus meiner URL_CONF entfernt:
Code: Alles auswählen
(r'^site_media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': '/path/to/media', 'show_indexes': True}),
Code: Alles auswählen
<Location "/">
SetHandler python-program
PythonPath "['/home/websites'] + sys.path"
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE musicreviews.settings
SetEnv PYTHON_EGG_CACHE /tmp/egg-cache
PythonDebug On
</Location>
<Location "/static/">
SetHandler None
</Location>
<LocationMatch "\.(jpg|gif|png)$">
SetHandler None
</LocationMatch>
Code: Alles auswählen
DocumentRoot /home/websites/myproject/static
Rufe ich jetzt die URL www.mydomain.de/images/test.jpg auf, so wird die "Page not found (404)" Seite von Django angezeigt. Dabei sollten doch z.B. jpegs gar nicht mehr von Python behandelt werden?
Hat jemand einen guten Tipp?