首页 > 解决方案 > Django 尝试提供不存在的缓存图像

问题描述

我正在运行 django 1.7.1

我正在尝试渲染一个.html使用一些缓存图像的页面。

这也是Image这些图像所属的模型:

image_pbox = models.ImageField(                                                                                                                                                                                                                                                               
     upload_to='pbox', blank=True, max_length=255, storage=STORAGE, null=True)
                                                                                                                                                                                                                                                                                          
image_pbox_300 = ImageSpecField(
    [ResizeToFit(300, 300)],                                                                                                                                                                                                                                                                  
    source='image_pbox', format='JPEG', options={'quality': 90},
    cachefile_storage=STORAGE)

在网页上,我可以使用 pagintaion 选择Image要返回的不同实例集,最终它们使用以下方式呈现:

{{image.image_pbox_300.url}}

现在,最初这一切都很好。然后,我的服务器出现电源问题,这些缓存图像所在的驱动器暂时断开了连接。现在,我可以使用我的网页来渲染一些缓存的图像——我假设那些之前没有缓存过的图像,但这是一个猜测。其他图像 - 我确定之前已缓存的图像 - 返回权限错误。请记住,这只是同一模型的不同实例。例如,前几张图像返回错误,后面的则不会。

权限错误:

OSError at /make_data_request/
[Errno 13] Permission denied: '/data/gallery/config/media/CACHE/images/pbox/MVSrCYHsteI6D0ocQfiLwwy'

权限错误似乎很简单。一定是有 ..permissions 的东西,对吧?与权限相关的所有内容似乎都已正确配置 - 请记住,选择图像确实有效。位于其中的每个图像都/data/gallery/config/media/CACHE/images/pbox/具有相同的权限。

但是,我注意到,引发错误的特定图像甚至不存在..(ls -la | grep MVS在目录中返回空)。

我现在该怎么办?

我试图简单地运行cache.clear(),但没有做任何事情。

标签: djangodjango-imagekit

解决方案


推荐阅读