Holen statische Dateien fehlgeschlagen 404 nginx
Ich bin jetzt Deployment einer django-app mit nginx und gunicorn auf ubuntu 12.
Und ich konfigurieren des nginx virtual Hosts-Datei wie folgt:
server {
listen 80;
server_name mydomain.com;
access_log /var/log/nginx/gunicorn.log;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /static/ {
root /var/www/django/ecerp/erp/static/;
}
}
Kann ich verlangen das django gut, aber beim request einer statischen Datei, es Antwort mit dem 404-status.
Ich bin mir sicher, dass der root-Pfad der statischen Datei korrekt ist.
Kann jemand helfen?
- wiki.nginx.org/Pitfalls#Root_inside_Location_Block. nginx.org/r/root
- Ich würde auch sicherstellen, dass Ihr nginx Benutzer hat die Berechtigungen zum Zugriff auf das Verzeichnis. Viel Glück
- nicht die Erlaubnis problem. Ich habe es geändert werden 777. Und nun die Rückkehr 404 aber nicht 403.
- Meine eigene Konfiguration verwendet die
alias
Richtlinie stattroot
. Ich habe auch die statische-und die media-Pfade, BEVOR Sie mit dem bloßenlocation /
. Vielleicht ist es routing zulocation /
match als erstes? - Wow!!! Ihre Lösung hilft! Ich fand, dass wenn ich Anfrage
http://example.com/static/somepath
es Karten zu/var/www/django/ecerp/erp/static/static/
! Also, wenn ich entfernen Sie die nachfolgendestatic/
ich arbeiten! Ich danke Ihnen sehr! - nicht in der Reihenfolge, problem habe ich gelöst, eine redundante
static/
sollte entfernt werden! - Die Bestellung war mein problem!!! Vielen Dank für die Hilfe!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie verwenden
alias
stattroot
.root
fügt die nachfolgende URL Teile an Ihren lokalen Pfad (z.B. http://test.ndd/trailing/part, es wird hinzufügen /trailing/Teil auf Ihre lokalen Pfad). Stattdessenalias
genau das tut, was Sie wollen: wenn http://test.ndd/static/ angefordert wird, /statisch zugeordnet, um Ihre alias-genau, ohne anfügen statischer wieder.TL;DR - überprüfen Sie die Berechtigungen von Dateien
Stolperte über diese Frage und ich war ja schon mit
alias
statt root, also, während das bisherige Antwort war bis zu dem Punkt, könnte Folgendes nützlich sein für andere.In meinem Fall die Lösung, um die gleichen Symptome stellte sich heraus, werden die Dateien in
static/
mitroot
als Eigentümer.Einem einfachen
chown www-data:www-data .
das problem gelöst ist, und nicht mehr404
.root
Dateien von Nginx, unabhängig von Berechtigungen, die Sie haben könnten. Mitchown
ist eine viel bessere Wahl hier.