我尝试使用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配置也不正确。
有人以前有这个麻烦吗?你有一些线索吗?
感谢您的帮助:)
答案 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;
}