img 404使用Nginx,Docker,Django,Digital Ocean

出于某种原因,我的CSS,JS和Font-Awesome静态资产被识别并正常使用,但是我的img静态文件在Nginx Docker容器日志中显示了404错误。

当我在本地构build这些容器时,一切正常,但是一旦我在Digital Ocean上构build,img文件就开始向Nginx抛出404错误。

我一直在工作几天没有运气,任何帮助将非常感激。

这里是我的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; } } 

这里是我的Nginx构build的Dockerfile:

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

我的Docker-compose文件看起来有点像这样:

 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 

错误日志看起来有点像这样:

 "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/" 

我可以确认我已经从命令行运行web容器中的“collectstatic”,并且terminal确认img文件已经被复制到静态根目录(/ usr / src / app / personal / static /)。

我完全失去了为什么只有一部分静态文件将被提供,特别是因为它们都位于相同的目录中,并在Django后端以相同的语法引用。

感谢您的时间和关注!

发现问题!

出于某种原因,当我在生产服务器(Digital Ocean Docker droplet)上运行collectstatic时,.jpg文件被复制到具有.JPG扩展名的静态根目录中。

在对我的Django模板进行一些更改并在模板标签中用.JPG交换.jpg之后,现在一切都正常。