Von hier aus habe ich Hilfe geholt, indem ich ein paar Antworten gemischt habe. Hier füge ich meine ganzen Teile hinzu. (Ich tue dies, um Anfängern zu helfen und auch für meinen zukünftigen Gebrauch)
Zunächst einmal stellt sich die Frage, warum Debug=False
benötigt! Ich legte mein Projekt in AWS und es wurde Verbindung Timeout nach wenigen Stunden wegen Speicherlecks. Zuerst dachte ich für Sellerie. (natürlich bin ich nur ein Anfänger) Dann habe ich DEBUG=False
von DEBUG=True
Wie wir die Sicherheitswarnung in settings.py sehen können
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
Sobald ich das getan habe, wurden meine statischen Dateien nicht mehr erfolgreich in Webseiten geladen. Dann habe ich überall gesucht und zunächst von hier aus den Befehl --insecure an runserver ausprobiert.
python manage.py runserver --insecure
Das ist erfolgreich, aber ich möchte den unsicheren Modus nicht in meinem Projekt haben, wenn es in Produktion ist. Und als die richtige Lösung [meiner Meinung nach] habe ich die folgenden Schritte befolgt.
Zuerst korrigiere ich die statische URL, Root und dir in einstellungen.py
STATIC_URL = '/static/'
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
Dann sammeln Sie die statischen Dateien mit dem Befehl
python manage.py collectstatic
Nun der zweite Schritt, [der auch hier vorgesehen ist] Installieren Sie zunächst whitenoise in Ihrem Projektverzeichnis über die Kommandozeile
pip install whitenoise
Fügen Sie dann 'whitenoise.middleware.WhiteNoiseMiddleware' in Ihre Middleware-Liste in settings.py ein.
Diese sollte direkt unter der "django.middleware.security.SecurityMiddleware" und über allen anderen Middlewares eingefügt werden. Damit Ihre Middleware-Liste wie folgt aussieht:-
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware', #after this line
'whitenoise.middleware.WhiteNoiseMiddleware', #add it exactlyhere
'django.contrib.sessions.middleware.SessionMiddleware', #before this
'...'
]
Fügen Sie 'whitenoise.runserver_nostatic' zu den installierten Anwendungen hinzu, so dass die Liste der installierten Anwendungen wie folgt aussehen wird:-
INSTALLED_APPS = [
'whitenoise.runserver_nostatic',
'django.contrib.admin',
'django.contrib.auth',
'...'
]
Fertig, Sie können jetzt statische Dateien in der Produktion bereitstellen!! [Das habe ich auch in meiner lokalen Umgebung getan].
Verwenden Sie einfach den runserver-Befehl wie immer keine unsicheren oder irgendetwas benötigt.
python manage.py runserver
Bumm!!! Es funktioniert bei mir. Hahaha. Ich weiß, das ist etwas kindisch, aber ich bin jetzt so glücklich.
Vielen Dank an alle, die hier Antworten gegeben haben und mir bei meiner Arbeit helfen.