我只是在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和图像存储路径之间存在冲突。请伸出援助之手。欢呼声
答案 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用语中寻找的表达方式。