For some reason, my CSS, JS, and Font-Awesome static assets are recognized and serving properly, but my img static files are showing 404 errors in the Nginx Docker container logs.

Everything works fine when I build these containers locally, but as soon as I build on Digital Ocean, the img files start to throw 404 errors with Nginx.

I've been tooling around for a few days with no luck, any help would be GREATLY appreciated.

Here are my Nginx settings:

server {

    listen 80;

    access_log /dev/stdout;
    error_log /dev/stdout info;

    location /static/ {
        alias /usr/src/app/personal/static/;

    location / {
        proxy_pass http://web: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;


Here's the Dockerfile for my Nginx build:

FROM tutum/nginx
RUN rm /etc/nginx/sites-enabled/default
ADD sites-enabled/ /etc/nginx/sites-enabled

My Docker-compose file looks a bit like this:

    restart: always
    build: ./web
      - 8000
      - postgres:postgres
      - ./web:/usr/src/app
      - .env
    command: /usr/local/bin/gunicorn etandme.wsgi:application -w 2 -b :8000

    restart: always
    build: ./nginx
      - 80:80
      - web
      - web:web

Error logs look a bit like this:

"GET /static/js/creative.js HTTP/1.1" 200 1860 "" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko)
[error] 7#0: *7 open() "/usr/src/app/personal/static/img/Monkeypod.jpg" failed (2: No such file or directory), client:, server:, request: "GET /static/img/Monkeypod.jpg HTTP/1.1", host: "", referrer: ""

I can confirm that I've run 'collectstatic' in the web container from the command line, and the terminal confirms the img files have been copied to the static root (/usr/src/app/personal/static/).

I'm completely lost as to why only a portion of the static files would be serving, especially since they're all located in the same directory and referenced in the Django backend with the same syntax.

Thank you kindly for your time and attention!


Found the issue!

For some reason, when I run collectstatic on the production server, (Digital Ocean Docker droplet), the .jpg files are copied into the static root directory with a .JPG extension.

After making some changes to my Django templates and swapping .jpg with .JPG in the template tags, everything serves properly now.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.