Pour une raison quelconque, mes fichiers statiques CSS, JS et Font-Awesome sont reconnus et servent correctement, mais mes fichiers statiques img affichent des erreurs 404 dans les logs du conteneur Docker Nginx.
Tout fonctionne bien lorsque je construis ces conteneurs localement, mais dès que je construis sur Digital Ocean, les fichiers img commencent à renvoyer des erreurs 404 avec Nginx.
Je tourne en rond depuis quelques jours sans succès, toute aide serait GRANDEMENT appréciée.
Voici mes paramètres 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;
}
}
Voici le Dockerfile pour la construction de mon Nginx :
FROM tutum/nginx
RUN rm /etc/nginx/sites-enabled/default
ADD sites-enabled/ /etc/nginx/sites-enabled
Mon fichier Docker-compose ressemble un peu à ceci :
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
Les logs d'erreur ressemblent un peu à ceci :
"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/"
Je confirme avoir exécuté 'collectstatic' dans le conteneur web à partir de la ligne de commande, et le terminal confirme que les fichiers img ont été copiés dans la racine statique (/usr/src/app/personal/static/).
Je suis complètement perdu quant à la raison pour laquelle seule une partie des fichiers statiques serait servie, d'autant plus qu'ils sont tous situés dans le même répertoire et référencés dans le backend Django avec la même syntaxe.
Je vous remercie vivement pour votre temps et votre attention !