Digital Ocean,Django和Nginx找不到所有静态文件

时间:2018-05-31 14:04:32

标签: django ubuntu nginx django-staticfiles nginx-location

我尝试了很多不同的东西,但我找到的所有解决方案都没有帮助。

我将我的公司网站放在ubuntu 16.04上的digitalocean网站上,方法是遵循digitalocean directions(之前运作良好),但它只提供一些静态文件。

以下是图片的链接。

<h3>Here is the image that doesn't load</h3>

<img src="http://206.189.161.104/static/images/frac_stack_1.jpg" alt="Image that doesn't load">

<h3>Here is the image that does load in the same folder</h3>

<img src="http://206.189.161.104/static/images/coil_pic.jpg" alt="Image that doesn't load" style="width:200px;height:200px;>

这是我的nginx配置:

server {
listen 80;
server_name 206.189.161.104;

location = /favicon.ico { access_log off; log_not_found off; }
location /static {
    root /home/dmckim/myproject;
}

location / {
    include proxy_params;
    proxy_pass http://unix:/home/dmckim/myproject/myproject.sock;
}
}

我尝试从静态中删除尾部斜杠(如上所示)。我也尝试将root更改为别名并将静态文件夹添加到路径中,但我得到了相同的结果。

以下是我的settings.py文件中的代码:

STATIC_URL = '/static/'

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static'),
    '/home/dmckim/myproject/static/',
    '/home/dmckim/myproject/static/images/',
)

我还尝试在再次收集静态之前清除collectstatic,之后我总是运行这些命令,并确保我的浏览器缓存被清除。

sudo systemctl restart gunicorn
sudo nginx -t && sudo systemctl restart nginx

我对文件的许可是-rw-rw-r--,对于加载的图像和不加载的图像。我也尝试了很多方法来更改权限(我真的不了解它们,但是在其他帖子中提到了它们)。我甚至破坏了服务器并从头开始确保我没有弄乱任何权限。

我没有看到nginx进程日志或访问日志有任何问题,但错误日志显示以下内容:

2018/05/31 13:04:19 [error] 11481#11481: *22 open() 
"/home/dmckim/myproject/static/images/frac_stack_1.jpg" failed (2: No such 
file or directory), client: 12.184.4.50, server: 206.189.161.104, request: 
"GET /static/images/frac_stack_1.jpg HTTP/1.1", host: "206.189.161.104", 
referrer: "http://206.189.161.104/frac-stacks/"

gunicorn日志显示404不能加载的图像。

这是www-data组uid=33(www-data) gid=33(www-data) groups=33(www-data)

这是我的论坛uid=1000(dmckim) gid=1000(dmckim) groups=1000(dmckim),27(sudo)

1 个答案:

答案 0 :(得分:0)

文件名区分大小写。您的图片名为&#34; http://206.189.161.104/static/images/frac_stack_1.JPG&#34;不是&#34; http://206.189.161.104/static/images/frac_stack_1.jpg&#34;。

&#13;
&#13;
<h3>Here is the image that loads</h3>

<img src="http://206.189.161.104/static/images/frac_stack_1.JPG" alt="Image that doesn't load" style="width:200px;height:200px;">

<h3>Here is the other image that does load in the same folder</h3>

<img src="http://206.189.161.104/static/images/coil_pic.jpg" alt="Image that doesn't load" style="width:200px;height:200px;>
&#13;
&#13;
&#13;

请注意,在本地运行此结果时,结果可能会有所不同。 Windows并不区分大小写,Linux就是。见this question for details