无法在Django上投放上传的图片

时间:2018-09-20 19:49:18

标签: django nginx django-imagekit

用户上传图片后,她始终会返回404错误。我认为这是一个Nginx missconfig,但我不确定,经过数小时的搜索后仍然无法理解问题。

这是我的settings.py:

DEBUG = False
STATIC_URL = '/static/'
STATICFILES_DIRS = (
    os.path.join(BASE_DIR,'static'),
)

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'

接下来,我的urls.py:

urlpatterns = [
...
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

还有我的Nginx配置文件:

location ^/static/ {
    autoindex on;
    alias /home/user/mywebsite/site/static;
}

location ^/media/ {
    alias /home/user/mywebsite/site/media;
}

这是图片的生成网址:https://www.mywebsite.com/media/CACHE/images/img/venus/758c9f7d70d0c64b5631cc865986de48.jpg(404)

我使用Django Imagekit处理上传的图像。我总是很奇怪地创建了这些URL ...也许ImageKit需要更多的额外配置?

我的静态和媒体目录位于/ mainappdjango / static中,而不位于根目录中。如果我不这样做,则不会加载我的静态对象。图像可以很好地上传到服务器上(我可以通过FTP或SSH访问它)。

您是否知道导致这些404错误的麻烦? :/

非常感谢!

1 个答案:

答案 0 :(得分:0)

您的nginx配置错误。必须加些盐。

location /static/ {
    alias /home/user/mywebsite/site/static/;
    autoindex on;
}
location /media/{
  alias /home/user/mywebsite/site/media/;
  autoindex on;
}