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 clearcleanup,但它根本不起作用。

我在 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 的区别

Xcode 8 构建失败仅适用于模拟器

sorl-thumbnail 不显示图像

为啥我的 charFormat 样式仅适用于选择,并且仅适用于特定方向的选择?

WebM 也适用于音频,还是仅适用于视频?

VS2010 Debug 构建工作,但 Release 没有