Statischen Dateien mit Nginx + Gunicorn + Django
Dies ist meine nginx config:
server {
listen 80;
server_name localhost;
keepalive_timeout 5;
access_log /home/tunde/django-projects/mumu/nginx/access.log;
error_log /home/tunde/django-projects/mumu/nginx/error.log;
root /home/tunde/django-projects/mumu;
location / {
try_files $uri @proxy_to_app;
}
location @proxy_to_app {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://127.0.0.1:8000;
}
}
Meine settings.py sieht aus wie:
import os
settings_dir = os.path.dirname(__file__)
PROJECT_ROOT = os.path.abspath(os.path.dirname(settings_dir))
STATIC_ROOT = '/home/tunde/django-projects/mumu/STATIC/'
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(PROJECT_ROOT, 'static/'),
)
Meine supervisord.conf-Datei sieht wie folgt aus:
[program: mumu]
command = /home/tunde/ENV1/bin/gunicorn -w 1 --bind=127.0.0.1:8000 mumu.wsgi:application
directory = /home/tunde/django-projects/mumu/
stdout_logfile= /home/tunde/django-projects/mumu/supervisor/logfile.log
stderr_logfile= /home/tunde/django-projects/mumu/supervisor/error.log
user = tunde
Das problem ist, dass statische Dateien, die nicht bedient werden und ich habe keine Ahnung, was ich falsch mache. Eine url wie " /static/css/styles.css gibt eine 404. Hilfe wird sehr geschätzt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie erstellen ein nginx location-block, entspricht die Lage Ihres django
STATIC_URL
. Wie hast du es konfiguriert, nginx ist auch die Weiterleitung von Anforderungen für statische assets auf Ihren django-Anwendung. Ich vermute, Sie sehen die 404-Fehler in Ihren django-Anwendung anmelden? Sie möchten nginx zum Umgang mit diesen Anforderungen, nicht django.Vergewissern Sie sich, dass die django-admin-Befehl
collectstatic
um sicherzustellen, dass alle statischen Elemente kopiert, dieSTATIC_ROOT
Verzeichnis.location
block in Ihrer nginx.conf wie Scott vorgeschlagen, es ist unmöglich für den nginx zu dienen, die statische Dateien.include
was macht dieser Richtlinie zur Verfügung, die aus einer anderen Datei(oga.conf), dann ist es OK.Ändern Sie bitte
$uri -> $request_uri