【问题标题】:Sorl-thumbnail only working with DEBUG=TrueSorl-thumbnail 仅适用于 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 配置本身。

【问题讨论】:

    标签: django memcached sorl-thumbnail


    【解决方案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>
    

    【讨论】:

      猜你喜欢
      • 2011-11-16
      • 2018-08-22
      • 1970-01-01
      • 2016-05-09
      • 2011-05-20
      • 1970-01-01
      • 1970-01-01
      • 2019-12-12
      • 2012-06-21
      相关资源
      最近更新 更多