Por algum motivo, meus ativos estáticos CSS, JS e Font-Awesome são reconhecidos e veiculados corretamente, mas meus arquivos estáticos img estão mostrando erros 404 nos logs do contêiner do Nginx Docker.
Tudo funciona bem quando eu construo esses contêineres localmente, mas assim que eu construo no Digital Ocean, os arquivos img começam a lançar erros 404 com o Nginx.
Eu tenho trabalhado por aí por alguns dias sem sorte, qualquer ajuda seria muito apreciada.
Aqui estão as minhas configurações de Nginx:
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;
}
}
Aqui está o Dockerfile para minha compilação Nginx:
FROM tutum/nginx
RUN rm /etc/nginx/sites-enabled/default
ADD sites-enabled/ /etc/nginx/sites-enabled
Meu arquivo do Docker-compose parece um pouco com isso:
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
Os registros de erros são um pouco parecidos com isto:
"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/"
Posso confirmar que executei 'collectstatic' no contêiner da web a partir da linha de comando, e o terminal confirma que os arquivos img foram copiados para a raiz estática (/ usr / src / app / personal / static /).
Estou completamente perdido a respeito de por que apenas uma parte dos arquivos estáticos seria veiculada, especialmente porque todos eles estão localizados no mesmo diretório e referenciados no backend do Django com a mesma sintaxe.
Obrigado gentilmente pelo seu tempo e atenção!