Report this

What is the reason for this report?

Nginx not serving static files for Django app! Help!

Posted on July 6, 2015

I’ve wasted 2 entire days without any help on this issue. I followed this guide and have started my application on Digital Ocean. It’s a djago app. The issue is, it is not loading any static file! My nano /etc/nginx/sites-available/webapp_name file looks like this:

server {
    server_name domainname.com;

    access_log off;

    location /static/ {
        root /opt/bizkeeda;
    }

My static files are in folder: /opt/appname/static/

My settings.py file looks like this:

STATIC_URL = '/static/'

STATICFILES_DIR = '/opt/appname/static/'

STATIC_ROOT = '/opt/appname/static/'

I also tried changing STATIC_ROOT to /opt/appname

On checking url of static files on website, it is: www.domain.com:8001/static/js/abc.js

All 404 errors! What should I do?



This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Have you run python manage.py collectstatic after uploading the app? Can you check if there are any errors in nginx’s error log?

sudo tail -30 /var/log/nginx/error.log

The solution is to either:

  1. change the permissions on the django folder so that nginx can read the files

or

  1. move the staticfiles directory to a place where nginx can read. I recommend something like /var/www/staticfiles

Hey Shekhar,

Did you find the solution to this, I am also facing the similar issue for my python flask application. It would be very helpful if you could share the solution that worked for you.

The developer cloud

Scale up as you grow — whether you're running one virtual machine or ten thousand.

Get started for free

Sign up and get $200 in credit for your first 60 days with DigitalOcean.*

*This promotional offer applies to new accounts only.