2017-05-27 6 views
0

(Sorry für mein schlechtes Englisch)Nginx - Django i perfekte statische Dateien dienen, aber keine Mediendateien

Ich bin ein eigenartiges Problem mit ... ich konfigurieren Django und Nginx alle perfekt, zeigt meine Seite perfekt alle statischen Dateien werden perfekt geladen. Aber ... Nginx liefert die Mediendateien nicht, ich überprüfe meine Konfigurationen und alles scheint in Ordnung zu sein. Aber ich bekomme immer die 404-Fehler und die Route ist das gleiche, die statischen Dateien aber mit dem Wort Medien

Dies ist eine statische Datei Route http://project.com/static/css/custom.css

Und das eine Mediendatei http://project.com/media/stores/logos/solutions_logo_rdWRcqQ.jpg

Dies ist die nginx Config

server { 
    listen 80; 
    server_name project.com; 

    location = /favicon.ico { access_log off; log_not_found off; } 

    location /static/ { 
      root /home/username; 
    } 

    location /media/ { 
      root /home/username; 
    } 

    location/{ 
      include proxy_params; 
      proxy_pass http://unix:/home/username/project.sock; 
    } 
} 

Und dies sind die django Einstellungen

STATIC_URL = '/static/' 
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static/'), 
) 
STATIC_ROOT=os.path.join(os.path.dirname(os.path.dirname(BASE_DIR)), 'static/') 

MEDIA_URL = '/media/' 
MEDIA_ROOT = os.path.join(os.path.dirname(os.path.dirname(BASE_DIR)), 'media/') 

Irgendeine Idee ???

Antwort

1

Eine Vermutung in die Wildnis. Ihre statischen Dateien werden direkt von django und nicht von Ihrem nginx geliefert. (Sie können das testen, indem die Standort/static {...} Abschnitt und starten Sie Ihren nginx.)

Dann wird Ihr Problem zu beheben, versuchen Sie es mit diesen:

server { 
    listen 80; 
    server_name project.com; 

    location = /favicon.ico { access_log off; log_not_found off; } 

    location /static/ { 
      alias /home/username; 
    } 

    location /media/ { 
      alias /home/username; 
    } 

    location/{ 
      include proxy_params; 
      proxy_pass http://unix:/home/username/project.sock; 
    } 
} 

Auch nicht vergessen starte danach dein nginx neu.

Verwandte Themen