Sorl-thumbnail 仅在 DEBUG=True 下工作

Sorl-thumbnail only working with DEBUG=True

我正在使用 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)

我确实阅读了 并按照建议的方式设置了我的 urlpatterns,但这并没有解决我的问题。

通过阅读此 other thread,我还认为变量 DEBUG 和 THUMBNAIL_DEBUG 之间的组合可能很重要,但似乎无关紧要。

我想 memcached 对此不负责任,因为它在 DEBUG = True 下工作正常,这意味着它已启用并启动 运行 就 Django 而言,所以我怀疑是一个错误使用 Django 或 sorl-thumbnail,或者 apache2 配置本身。

问题出在我的 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>