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 clear
或 cleanup
但它根本不起作用。
我在 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>
我正在使用 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)
我确实阅读了
通过阅读此 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>