Question

Nginx not serving static files for Django app! Help!

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?

Show comments

Submit an answer

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!

Sign In or Sign Up to Answer

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.

'location /static/ ’ part at sites-available and STATIC_ROOT at settings.py should be same. For example:

location /static/ {
        alias   /opt/appname/static/;
    }
STATIC_ROOT = '/opt/appname/static/'

after that run:

python manage.py collectstatic

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

You have to restart the gunicorn also you have to restart the nginx after you update the nginx configuration.

sudo service gunicorn restart **sudo service nginx restart **