2012-04-01 7 views
0

Django 1.4 release notes Zustand:Django 1.4 Admin statische Dateien ohne Static App

Wenn Sie implizit sind auf dem Weg der Admin-statischen Dateien innerhalb Django Quellcode verlassen, müssen Sie diesen Pfad aktualisieren. Die Dateien wurden von django/contrib/admin/media/in django/contrib/admin/static/admin/verschoben.

Kann 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 aufrufen 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.

Antwort

1

manage.py collectstatic wird verwendet, wenn Sie bereitstellen, während der Entwicklung können Sie django dienen Ihre statische und Mediendateien durch das Hinzufügen zu Ihrem url.py:

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 alle statischen Dateien, die mit wiederverwendbaren Apps gebündelt sind. Dies vermeidet die echte Albtraum von Symlinks zu Ihrem Webserver Root für jede Drittanbieter-App pro Projekt hinzufügen!

+0

Danke - Ich weiß deine Antwort sehr zu schätzen und habe dafür gestimmt. Doch * hust * entwickeln wir uns viel zu oft * direkt * auf unserem Lebensserver - in der Statik! Wir haben solche dynamischen Projekte, die täglich aktualisiert, betreut, repariert, etc. werden müssen. –

+0

Auch wenn Sie Hotfixing durchführen, sollten Sie die Versionskontrolle und ein Bereitstellungsskript durchlaufen. Unser CI-Server prüft das Projekt, wenn er Änderungen registriert, und führt bei Bedarf die Fabric-Update-Skripts aus. Dazu gehören Datenbankänderungen, Änderungen am System, alles. Ich kann nicht täglich mehr bekommen. – ashwoods

Verwandte Themen