Antworten:
Wenn Sie den Entwicklungsserver verwenden, befolgen Sie die Anleitungen des Django-Projekts zum Verwalten statischer Dateien zum Einrichten Ihrer URLs. Verweisen Sie dann auf Ihre Mediendateien in der Vorlage, z. B. ein Bild in einem Bildordner von /site_media/images/foo.gif
.
Allgemeiner ausgedrückt, fragen Sie, wie eine statische Datei von Django bereitgestellt werden soll. Wenn Sie unter Apache arbeiten, sollten Sie http://docs.djangoproject.com/en/dev/howto/deployment/modpython/ lesen.
Wenn Sie den Entwicklungsserver ausführen (z. B. auf Ihrem Laptop), lesen Sie http://docs.djangoproject.com/de/dev/howto/static-files/.
Beachten Sie den großen, fetten Haftungsausschluss bezüglich des Django-Entwicklungsservers:
Dies verursachte mir auch für eine Weile Probleme (404 keine Fehler gefunden). Das fehlende Bit für mich war, das STATICFILES_DIRS
Tupel in settings.py zu bearbeiten , um mir Folgendes zu geben:
STATICFILES_DIRS = (
# Put strings here, like "/home/html/static" or "C:/www/django/static".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
os.path.join(os.path.dirname(__file__),'media').replace('\\','/'),
)
Dadurch wurden meine CSS-Dateien in einem Ordner namens "Medien" abgerufen, der sich auf der obersten Ebene meines Django-Projekts befand.
Ich hatte auch:
MEDIA_ROOT = ''
MEDIA_URL = ''
STATIC_ROOT = ''
STATIC_URL = '/media/'
(Stellen Sie sicher, dass Sie die Führung /
oben in habenSTATIC_URL
)
Wie oben erwähnt, muss die CSS-Datei natürlich ordnungsgemäß aus Ihren HTML-Dateien enthalten sein. Ich hatte:
<link href="{{ STATIC_URL }}css/ea_base.css" rel="stylesheet" type="text/css" media="screen" />
.replace('\\','/')
ist unnötig.
Welche Einstellungen muss ich vornehmen, damit Django die CSS-Datei sieht?
Keiner.
Stellen Sie sicher, dass Ihre Vorlage die CSS-Datei enthält (wie bei Standard-HTML), und legen Sie die CSS-Datei auf dem Medienserver ab.
Zur Verdeutlichung: Bei Django wird dringend empfohlen, dass Sie alle Ihre Medien (alles, was kein dynamisches HTML ist) von einer anderen Serverinstanz aus bereitstellen. Wie Sie das implementieren, liegt ganz bei Ihnen, aber die meisten Leute erstellen eine Subdomain.
Die offiziellen Django-Dokumente haben mir nicht geholfen. Hoffe, der Blog-Beitrag " Django: Wie man statische Dateien bereitstellt " hilft einigen von Ihnen.
Der einfachste Weg, CSS mit Django zu verwenden, besteht darin, es als statische Dateien zu Ihren Vorlagen hinzuzufügen.
Aber es ist ein bisschen wie Ajax, ich habe nichts gefunden, was sagt, wie man es auf normale Weise einbindet.
Es gibt ein CSS-Kompressormodul für Django, wenn Sie seine Größe optimieren möchten.