Verwalten von statischen Dateien für mehrere apps in Django

Ich bin die Entwicklung einer Django (1.3) Projekt aus vielen Anwendungen. Jede Anwendung hat Ihre eigene statische Dateien unter eigene static - Verzeichnis. Außerdem habe ich ein Verzeichnis namens project_static enthalten statische Dateien, die Häufig während der verschiedenen Anwendungen, wie z.B. jQuery.

Das problem, das ich sofort in ausgeführt wird, dass der Namenskonflikte. Standardmäßig collectstatic werden einfach alles unter einem globalen static Verzeichnis, ohne Sie zu klassifizieren, die durch Anwendung. Dies funktioniert bei mir nicht, da jede Anwendung hat zum Beispiel eine Datei namens css/screen.css.

Die Art, wie ich es gelöst ist durch das entfernen django.contrib.staticfiles.finders.AppDirectoriesFinder aus STATICFILES_FINDERS und mit Namespace-statische Dateien dirs, so sind meine Einstellungen jetzt wie folgt Aussehen:

STATICFILES_DIRS = (
    os.path.join(PROJECT_PATH, 'project_static'),
    ('my_app', os.path.join(PROJECT_PATH, 'my_app', 'static')),
    ('another_app', os.path.join(PROJECT_PATH, 'another_app', 'static')),
    ...
)

STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
)

Das problem ist, dass ich auf diese Weise verlieren die statischen Dateien für alle anderen Anwendungen (z.B. django.contrib.admin). Natürlich könnte ich das manuell hinzufügen der admin, aber ich bin mir nicht sicher, wie dies zu tun, ohne zu brechen, den admin, der hat eine andere Verzeichnis-Struktur.

Gibt es eine bessere Möglichkeit zur Verwaltung der statischen Dateien mit mehr als einer Anwendung?

InformationsquelleAutor Andrea | 2011-08-25
Schreibe einen Kommentar