Nginx,gunicorn,django,ubuntu - 不显示图像

时间:2017-07-26 14:04:26

标签: django ubuntu nginx gunicorn

人类同胞

我只是在digitalocean上设置了一个服务器并部署了我的应用程序。其他一切工作正常,包括我的JavaScript和CSS。但由于某些原因,用户上传的图像无法显示

我认为我领先但仍然不知道该去哪里。

如果你能指出我正确的方向,

真的很感激

所以这是我的图像模型(upload_to)

class Image(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL,
                         related_name='images_created')
    title = models.CharField(max_length=2000)
    slug = models.SlugField(max_length=200,
                        blank=True)
    url = models.URLField()
    image = models.ImageField(upload_to='images/%Y/%m/%d')
    description = models.TextField(blank=True, null=True)
    created = models.DateField(auto_now_add=True,
                                            db_index=True)
    users_like = models.ManyToManyField(settings.AUTH_USER_MODEL,
    related_name='images_liked', blank=True)

这是我的nginx conf

server {
    listen 80;
    server_name 67.207.87.22;

    location = /favicon.ico { access_log off; log_not_found off; }

    location /static/ {
        alias /home/kingiyk/stylplus/static/;
    }

    location /media/ {
    alias /home/kingiyk/stylplus/media/;
    }




    location / {
    include proxy_params;
    proxy_pass http://unix:/home/kingiyk/stylplus/stylplus.sock;
}
}

当我上传图片时,它会保存到/ home / kingiyk / stylplus / images / 2017/07/26

stylplus / images是图像应用程序

我认为' 2017/07/26'部分是因为我的 upload_to 是' images /%Y /%m /%d(年/月/日)。

虽然上传成功,但图片无法显示 我的css和javascript没问题。

现在我猜我的nginx conf和图像存储路径之间存在冲突。请伸出援助之手。欢呼声

1 个答案:

答案 0 :(得分:0)

它的工作方式如下:Django Dev服务器让我们很容易开发。你只需要在settings.py上放置一个文件夹,Django Dev服务器就可以提供该文件夹中的文件,默认情况下是'静态'。从内部Django工作中收集静态获取文件并放入此静态文件夹(如admin页面css)。你不需要在dev上,因为Django服务器调查Django lib文件夹,而nginx不。所以......没有关系。对于您的问题,我真的建议您将图像上传到的文件夹更改为css所在的文件夹('static')。检查是否有效。如果是Works,您可以在Settings.py和nginx上配置新文件夹,以静态为例。了解如何在此链接上配置Django上的“媒体”文件:https://docs.djangoproject.com/en/1.11/howto/static-files/。 “媒体文件”是您应该在Django用语中寻找的表达方式。