/ / Django 1.4 admin statische Dateien ohne staticfiles app - django, statisch, django-admin, django-1.4

Django 1.4 admin statische Dateien ohne staticfiles app - django, statisch, django-admin, django-1.4

Django 1.4 Versionshinweise Zustand:

Wenn Sie sich implizit auf den Pfad derAdmin statische Dateien In Djangos Quellcode müssen Sie diesen Pfad aktualisieren. Das Dateien wurden von django / contrib / admin / media / in verschoben django / contrib / admin / statisch / admin /.

Könnte jemand erklären, wie das genau gemacht wird? Bis Django 1.3 haben wir ADMIN_MEDIA_PREFIX in settings.py verwendet, das nun veraltet ist. Da wir jedoch ständig an unseren statischen Dateien (js, css, ...) arbeiten, ist die staticfiles App für uns ein eher nerviges Nogo. Collectstatic nach jeder Änderung anzurufen ist ein Alptraum :-P

Eine reine Python / Django-Lösung wäre großartig. Wenn das nicht möglich ist, verwenden wir LighTPD als Server und nicht Apache.

Antworten:

1 für die Antwort № 1

manage.py collectstatic wird bei der Bereitstellung verwendet. Während der Entwicklung können Sie django Ihre statischen und Mediendateien bereitstellen lassen, indem Sie diese zu Ihrer URL.py hinzufügen:

from django.conf.urls.static import static
from django.conf import settings
from django.contrib.staticfiles.urls import staticfiles_urlpatterns

...
...

if settings.DEBUG:
# add one of these for every non-static root you want to serve
urlpatterns+= static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
# this take cares of static media (i.e. bundled in apps, and specified in settings)
urlpatterns+= staticfiles_urlpatterns()

Dies dient auch allen statischen Dateien, die mit wiederverwendbaren Apps gebündelt sind. Dies vermeidet die echter Albtraum Symlinks zu deinem Webserver-Root für jede Drittanbieter-App pro Projekt hinzufügen!


0 für die Antwort № 2

Ups, ich habe die Lösung in Djangos neuer Dokumentation gefunden:

https://docs.djangoproject.com/en/1.4/howto/deployment/wsgi/modwsgi/#serving-the-admin-files