2017-05-27 1 views
0

(Désolé pour mon mauvais anglais)Nginx - Django i servir des fichiers statiques parfaits, mais pas les fichiers multimédias

Je vais avoir un problème particulier ... je configurer Django et Nginx tous parfaits, mon site montre parfait tout statique les fichiers sont chargés à. Mais ..... Nginx ne sert pas les fichiers médias, je vérifie mes configurations et tout semble aller bien. Mais je reçois toujours l'erreur 404 et la route est le même que les fichiers statiques, mais avec le mot média

ceci est une route de fichier statique http://project.com/static/css/custom.css

Ce fichier média http://project.com/media/stores/logos/solutions_logo_rdWRcqQ.jpg

C'est la config nginx

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; 
    } 
} 

Et ce sont les paramètres django

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/') 

Une idée ???

Répondre

1

Une estimation dans la nature. Vos fichiers statiques sont servis directement par django et non par votre nginx. (Vous pouvez vérifier que en supprimant l'emplacement /statique {...} section et redémarrez votre nginx.)

Ensuite, pour résoudre votre problème s'il vous plaît essayez ceci:

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; 
    } 
} 

Aussi, ne pas oublier de redémarrez votre nginx par la suite.