0594415f43352b3ef81a458516a1377f90b700f8
By:
moni

Nginx unable to server static and media images

March 7, 2015 3.6k views
Django Nginx

I have a django app on DigitalOcean droplet running using gunicorn and nginx. The site is working but the static files are giveing 404. Below is my '/etc/nginx/sites-available/django-project' file:

server {

        #listen 80 default_server;
        #listen [::]:80 default_server ipv6only=on;

        server_name aakar.in;

        root /usr/share/nginx/html;
        index index.html index.htm;

        #access_log off;

        client_max_body_size 4G;
        #server_name _;

        keepalive_timeout 5;

        location /media  {
           alias /home/django/django_project/django_project/media;
        }

        location /static/ {
            alias /home/django/django_project/django_project/static;
        }

        location / {

                proxy_pass http://127.0.0.1:9000;
                proxy_redirect off;
                proxy_set_header X-Forwarded-Host $server_name;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header Host $http_host;
                add_header P3P 'CP="ALL DSP COR PSAa PSDa OUR NOR ONL UNI COM N$
        }
    }
1 Answer

As long as the path you have listed is correct this should work. I would recommend checking to ensure that the files and directory will allow the www-data user (which nginx is running as) is able to view files in that location. You may need to adjust permissions or ownership (especially if you uploaded them as root or this home directory is not set up to allow access by non-root users other than the django user).

Have another answer? Share your knowledge.