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;
server_name 104.236.29.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:
web:
restart: always
build: ./web
expose:
- 8000
links:
- postgres:postgres
volumes:
- ./web:/usr/src/app
env_file:
- .env
command: /usr/local/bin/gunicorn etandme.wsgi:application -w 2 -b :8000
nginx:
restart: always
build: ./nginx
ports:
- 80:80
volumes_from:
- web
links:
- web:web
Error logs look a bit like this:
"GET /static/js/creative.js HTTP/1.1" 200 1860 "http://104.236.29.80/" "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: 98.151.113.208, server: 159.203.166.130, request: "GET /static/img/Monkeypod.jpg HTTP/1.1", host: "104.236.29.80", referrer: "http://104.236.29.80/"
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!