我在将 S3 用于媒体文件的 django 项目中使用 sorl 缩略图时遇到了一个非常奇怪的错误。我已按照此答案https://stackoverflow.com/a/12848650/538191中的说明完成了设置,实际上我的所有其他媒体文件都已正确生成。
但是对于通过 sorl 缩略图生成的图像,我得到一个这样的 url
这个问题很奇怪,因为它将 S3 存储路径附加到图像 url,但它没有在两者之间添加 /media/。如果你检查
https://he-s3.s3.amazonaws.com/media/cache/6f/cb/6fcb83175cb63f754fba9facec5dda7f.jpg
该图像实际上存在于那里,但由于 url 生成错误,我得到一个损坏的图像。在设置文件中,我使用 s3boto 声明了 DEFAULT_FILE_STORAGE 并且它包含
S3_URL = 'http://he-s3.s3-website-ap-southeast-1.amazonaws.com'
MEDIA_URL = S3_URL + '/media/'
我不明白为什么 sorl 缩略图图像中的路径不包含媒体。
任何帮助表示赞赏。
更新
问题不但没有得到解决,反而变得更加复杂。我所做的是我清除了缩略图中的 KVStore 并清除了所有数据库。我很高兴,因为我认为问题已经解决了,我现在得到了正确的 url。但后来我刷新了页面,我又得到了错误的 url。我不明白发生了什么,如果我清除缩略图数据库,它会显示一次正确的 url,然后再次显示错误的 url。