Sorl-thumbnail 仅适用于 DEBUG=True
Posted
技术标签:
【中文标题】Sorl-thumbnail 仅适用于 DEBUG=True【英文标题】:Sorl-thumbnail only working with DEBUG=True 【发布时间】:2022-01-05 04:52:40 【问题描述】:我正在使用 Python 3.6.9、Django 3.2.8、sorl-thumbnail 12.7.0 以及 memcached 和 apache2
当 settings.py 变量 DEBUG 设置为 False 时,我的缩略图完全消失并返回 404。
我还必须说,设置 THUMBNAIL_DEBUG = True 根本没有显示任何错误,据我了解,这取决于上述变量,如果没有,我必须将其设置为 False 以使图片消失取决于它,我也没有显示任何错误。
我只是将它们加载到这样的模板中:
% load thumbnail %
% thumbnail ann.obj.fotografia_professionista "460x310" as thumb %<img src=" thumb.url " data-src=" thumb.url " class="img-fluid lazy">% endthumbnail %
只要 DEBUG = True,它就可以正常工作。
我重新启动了 apache2 和 memcached,我也使用了 python manage.py thumbnail clear
或 cleanup
,但它根本不起作用。
我在 SETTINGS.MEDIA_URL 上提供缩略图,它刚刚设置为“/media”,并且我在 urls.py 中启用,如下所示:
urlpatterns = [
# my paths
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
我确实阅读了this thread,并按照建议的方式设置了我的 urlpatterns,但这并没有解决我的问题。
通过阅读此other thread,我还认为变量 DEBUG 和 THUMBNAIL_DEBUG 之间的组合可能很重要,但似乎并不重要。
我认为 memcached 不对此负责,因为它与 DEBUG = True 一起工作正常,这意味着就 Django 而言它已启用并启动并运行,所以我怀疑 Django 或 sorl 存在错误-缩略图,或者可能是 apache2 配置本身。
【问题讨论】:
【参考方案1】:问题出在我的 apache2 站点配置文件中,由于目录路径已更改,该文件未提供 /media 别名。
请参阅文档的this page以防万一。
Alias /robots.txt /path/to/mysite.com/static/robots.txt
Alias /favicon.ico /path/to/mysite.com/static/favicon.ico
Alias /media/ /path/to/mysite.com/media/
Alias /static/ /path/to/mysite.com/static/
<Directory /path/to/mysite.com/static>
Require all granted
</Directory>
<Directory /path/to/mysite.com/media>
Require all granted
</Directory>
WSGIScriptAlias / /path/to/mysite.com/mysite/wsgi.py
<Directory /path/to/mysite.com/mysite>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
【讨论】:
以上是关于Sorl-thumbnail 仅适用于 DEBUG=True的主要内容,如果未能解决你的问题,请参考以下文章
Django 简单缩略图与 sorl-thumbnail 的区别