it-swarm.com.de

Wie verwende ich CSS in Django?

Ich erstelle meine Anwendung mit Django und frage mich, wie ich Django dazu bringen kann, meine CSS-Datei zu verwenden? Welche Einstellungen muss ich vornehmen, damit Django die CSS-Datei sieht?

Hinweis: Auf einem lokalen Computer

108
gath

Wenn Sie den Entwicklungsserver verwenden, befolgen Sie die Anweisungen des Django-Projekts zur Verwaltung statischer Dateien , um Ihre URLs einzurichten. Verweisen Sie dann auf Ihre Mediendateien in der Vorlage - beispielsweise ein Bild in einem Bildordner von /site_media/images/foo.gif.

48
Joe

Allgemeiner ausgedrückt, fragen Sie, wie Sie eine statische Datei von Django bereitstellen. Wenn Sie unter Apache laufen, sollten Sie http://docs.djangoproject.com/de/dev/howto/deployment/modpython/ lesen.

Wenn Sie den Entwicklungsserver (z. B. auf Ihrem Laptop) ausführen, lesen Sie http://docs.djangoproject.com/de/dev/howto/static-files/

Beachten Sie den big, fat Haftungsausschluss bezüglich des Django-Entwicklungsservers:

  • Die Verwendung dieses Servers ist ineffizient und unsicher.
  • Verwenden Sie dies nicht in einer Produktionseinstellung.
  • Verwenden Sie dies nur für die Entwicklung.
36
Peter Rowell

Dies verursachte mir auch eine Weile Probleme (404 Fehler nicht gefunden). Das fehlende Bit für mich war, das STATICFILES_DIRS-Tuple 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('\\','/'),
)

Daraufhin wurden meine CSS-Dateien in einem Ordner namens "Media" 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 den führenden / oben in STATIC_URL haben.)

Wie oben erwähnt, müssen Sie natürlich die CSS-Datei ordnungsgemäß aus Ihren HTML-Dateien einfügen. Ich hatte:

<link href="{{ STATIC_URL }}css/ea_base.css" rel="stylesheet" type="text/css" media="screen" />
13
jacanterbury

Welche Einstellungen muss ich machen, damit Django die CSS-Datei sieht?

Keiner.

Stellen Sie sicher, dass Ihre Vorlage die CSS-Datei enthält (wie Standard-HTML), und legen Sie die CSS-Datei auf dem Medienserver ab.

Zur Klarstellung: Mit Django wird dringend empfohlen, dass Sie alle Ihre Medien (alles, was nicht dynamisches HTML ist) von einer anderen Serverinstanz aus bedienen. Wie Sie dies implementieren, liegt ganz bei Ihnen, aber die meisten Leute erstellen eine Subdomain.

12
Oli

Die offiziellen Django-Ärzte haben mir nicht geholfen. Hoffe den Blog-Post " Django: Wie man statische Dateien liefert " hilft einigen von euch.

8

Die einfachste Möglichkeit, css mit Django zu verwenden, ist es, 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-compressor -Modul für Django, wenn Sie seine Größe optimieren möchten.

0
Roch