尝试获取Django imagekit缩略图时出现404错误

时间:2018-07-18 23:06:04

标签: django nginx django-imagekit

我尝试使用Django 2和imagekit库生成一些缩略图。

当我想在模板中获取缩略图时,它向我返回图像URL 404错误。上传的图像在服务器上的正确位置。

这是我的模特:

class Article(models.Model):
    [...]
    uploaded_image = models.ImageField('Image miniature (upload)', upload_to='img', max_length=255, null=True, blank=True)
    optimized_image = ImageSpecField(source='uploaded_image', format='JPEG', options={'quality': 60, 'optimize':True})

我的模板中的代码:

{% thumbnail '700x219' article.optimized_image -- alt=article.name %}

以及该网站的Nginx配置设置:

location /static/ {
    alias /home/user/myproject/site/static;
}

location /media/ {
    alias /home/user/myproject/site/media;
}

静态文件正常运行。

首先,我发现生成的缩略图URL很奇怪:https://www.mywebsite.com/media/CACHE/images/CACHE/images/img/my-img_ODSHuRU/b15da1962adc1c7a8031923bbf0fecb1/c2dd3587bf0c19faba27636f458188c3.jpg

它正在重复/ CACHE / images路径...

所以我看着Django的设置:

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

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

我看不到我做错了什么。我的媒体目录配置可能失败了,或者我的Nginx配置也不正确。

有人以前有这个麻烦吗?你有一些线索吗?

感谢您的帮助:)

1 个答案:

答案 0 :(得分:0)

在您的URL文件中添加

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

Nginx:

location /static {
    alias /home/user/myproject/site/static;
}

location /media {
    alias /home/user/myproject/site/media;
}