为 Django 站点重置 sorl 缩略图
Posted
技术标签:
【中文标题】为 Django 站点重置 sorl 缩略图【英文标题】:Reset sorl Thumbnail for a Django site 【发布时间】:2014-08-21 07:51:07 【问题描述】:我们从开发服务器切换到生产服务器,但尝试为 sorl thubmnail 使用相同的缓存。在我们尝试解决问题的过程中,我们几乎搞砸了缓存,删除了所有缓存的图像。
Sorl 认为找到了缩略图,但不存在缩略图,因此显示错误图像。尝试从其 URL 直接访问缩略图会导致 404。
我想做的是重置 sorl,就好像我刚开始使用它一样。
我尝试运行python manage.py thumbnail cleanup
和python manage.py thumbnail clear
,但是sorl 仍然会返回一个url,例如“http://www.whatever.com/media/cache/84/0f/840fa03745a82238b980f4ceb188b110.jpg”,其中不存在图像。
我认为 sorl 的目的是寻找缩略图,如果不存在,它会创建一个。
我什至尝试从我的数据库中删除thumbnail_kvstore
表,但它没有任何改变。我尝试将 THUMBNAIL_KVSTORE
设置更改为 Redis,但它也没有任何改变。 Sorl 仍然不断返回不存在的缩略图。
我可以创建新的缩略图,然后这些缩略图可以正常工作。
如何在我的 Django 项目中完全重置 sorl,以便当它通过我的站点时,它会再次生成缩略图?
感谢您的帮助
编辑:我已经对其进行了更多研究,我认为问题可能与在生产环境中创建缩略图有关。在我的开发服务器上,我运行thumbnail clear
,然后该站点重新加载缩略图。我的生产服务器使用 ngin-x 和 uWSGI 运行,并且 DEBUG 已关闭。
后期编辑:我的问题是权限问题。生产服务器无权写入包含缓存的驱动器,而开发服务器有。
【问题讨论】:
问题解决了吗? @Brian 是的,我解决了我们遇到的问题;但是,我认为我们不是通过重置 sorl 来做到这一点的。正如问题的“后期编辑”中所述,这个问题是完全无关的。这就是为什么我没有将其发布为答案。 创建回复,说明您是如何解决这个问题的。我对 AWS 也有同样的问题。我是否必须更改AWS_DEFAULT_ACL
或我必须在 S3 本身中更改的内容?
嗨@GuilhermeIA - 请在问题中查看我的“后期编辑” - 我的问题与 sorl 缩略图完全无关。您可以考虑针对您的问题和设置的具体情况提出一个单独的问题。
【参考方案1】:
同样的事情发生在我身上,我所做的是改变图像的大小,以便它可以再次重新加载它们:
% thumbnail image.original "x301" as thumb %
【讨论】:
这不是正确的答案,它是一个 gambiarra。您可以更新,但每次他必须更新时,他都必须更改切割尺寸吗?以上是关于为 Django 站点重置 sorl 缩略图的主要内容,如果未能解决你的问题,请参考以下文章
Django 简单缩略图与 sorl-thumbnail 的区别
django - 关于 sorl-thumbnail 的注意事项