Warum Django HTTP 500 Fehler für statische Medien erzeugen, wenn Debug auf False gesetzt ist?

StackOverflow https://stackoverflow.com/questions/121866

  •  02-07-2019
  •  | 
  •  

Frage

Ich bereite meinen Django app zu implementieren, und ich bemerkte, dass, wenn ich die „debug“ ändere auf False setzen, alle Verweise auf statische Dateien (dh, JavaScript, CSS, etc ..) führen in HTTP 500 Fehlern.

Jede Idee, was dieses Problem verursacht (und wie man es beheben)?

War es hilfreich?

Lösung

Ich würde empfehlen, Ihr Web-Server die statischen Anforderungen, ohne sie zu Django behandeln zu lassen. In meinem urls.py, füge ich nur die statischen Request-Handler, wenn Debug auf True gesetzt ist.

Technisch dient Django die statischen Arbeiten jedoch in Ordnung. Auf jeden Fall lesen Sie die kurze docs Seite http://docs.djangoproject.com/en / dev / Howto / statisch-files / . Sie werden einen Eintrag wie diesen in urls.py

verwenden möchten
(r'^static/(?P<path>.*)$', 'django.views.static.serve',
    {'document_root': '/path/to/media'})

Andere Tipps

Es klingt wie Sie könnten versuchen, Ihre statischen Medien mit dem Django-Entwicklungsserver zu dienen. Schauen Sie sich auf http://docs.djangoproject.com/en/dev/howto/ Bereitstellung / für einige Einsatzszenarien / howtos und http: // docs .djangoproject.com / en / dev / Howto / statisch-Dateien / wie statische Dateien dienen (aber beachten Sie die Hinweise über nicht, dass diese Methoden in der Produktion verwendet wird).

Im Allgemeinen würde ich an Ihren Server-Logs schauen und sehen, wo es versucht, die Dateien aus zu holen. Ich vermute, dass die 500-Fehler sind wirklich 404-Fehler, aber sie werden 500 Fehler, weil Django kann nicht die 404.html Vorlage finden oder machen. Wenn das nicht der Fall ist, wäre es hilfreich, wenn Sie die spezifischen 500-Fehler posten könnten Sie bekommen.

Sie müssen auch Ihre URLs überprüfen alle über den Ort. Wenn die DEBUG auf False, alle URLs gesetzt wird, ohne als Fehler behandelt „/“ nachlaufend, anders als wenn man DEBUG = True, in diesem Fall wird Django anhängen „/“ überall fehlt es. Also, kurz gesagt, stellen Sie sicher, dass alle Verbindungen üBERALL mit einem Schrägstrich.

Es stellt sich heraus, dass ich hatte den SECRET_KEY Variable Kommentar gesetzt. Es gab keine Möglichkeit für mich aber wissen. Gerade hatte, Dinge auszuprobieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top