2012-04-12 14 views
1

Ich versuche herauszufinden, warum ich base.css in Django nicht überschreiben kann.Hinzufügen eines statischen Dateiverzeichnisses zum Überschreiben von CSS in Django

In settings.py ich habe:

STATIC_URL = "/site_media/static/" 

Und in site_base.html:

<link rel="stylesheet" href="{{ STATIC_URL }}pinax/css/base.css" /> 

Und ich habe die Datei in /site_media/static/pinax/css/base.css gelegen angepasst. Aber anstatt die Datei von hier zu lesen, liest sie es immer noch aus meinem python/site-packages/pinax Verzeichnis. Und in der gleichen site_base.html Datei kann ich ein Bild, das in der /site_media_static/pinax/images/ Ordner ist, überschreiben, die seltsam scheint, dass ich das Bild, aber nicht die CSS-Datei überschreiben kann.

Irgendeine Idee, was ich falsch mache?

Antwort

1

Die STATIC_URL ist die URL, von der statische Dateien geliefert werden, nicht das Verzeichnis, in dem sie gespeichert sind.

Sie müssen das Verzeichnis mit Ihren statischen Dateien zu STATICFILES_DIRS hinzufügen oder Ihre statischen Dateien in das Unterverzeichnis static einer Anwendung einfügen.

Siehe Dokumente für die Django staticfiles app.

+1

Ich benutze 'collectstatic' und habe mich gefragt, warum es meine überfahrene base.css für den django admin nicht gesammelt hat. Der [staticfiles app docs] (https://docs.djangoproject.com/en/1.8/ref/contrib/staticfiles/#collectstatic) Status: "Die Datei, die zuerst an einem der angegebenen Orte gefunden wurde, wird verwendet". Also habe ich "mysite" in der Einstellung "INSTALLED_APPS" auf die erste Position verschoben. Es kopiert nun 'mysite/static/admin/css/base.css' anstelle von' python/site-packages/django/contrib/admin/css/base.css'. – jenniwren

0

STATIC_ROOT (die durch STATIC_URL verwiesen wird) nicht manuell geändert werden, ist es von collectstatic Befehl von ann bevölkert wird apps statischen dirs und STATICFILES_DIRS. In Djangos Dev-Server gibt es auch einen Helper, der den Zugriff auf statische Dateien direkt von der Quelle ermöglicht, was das Debuggen von JS und CSS erleichtert.

In Ihrem Fall können Sie versuchen, aktualisierte Datei irgendwo innerhalb STATICFILES_DIRS. Werfen Sie auch einen Blick auf STATICFILES_FINDERS, die Reihenfolge für statische Dateien Finder ändern können, um festzulegen, welche die Priorität haben wird.