如何缩略图静态文件?(How to thumbnail static files?)

2019-09-24 07:16发布

我想调整与SORL缩略图我的静态文件,但它不工作

这里是我的代码

{% if not new.photo %}

{% with path="{{STATIC_URL}}/images/empty-news.jpg" %}
{% thumbnail path "80x80" crop="center" as im %}
<a href="#" class="image"><img alt="" src="{{im.url}}" class="frame2"></a>
{% endthumbnail %}
{% endwith %}

{% else %}
{% thumbnail new.photo "80x80" crop="center" as im %}
<a href="{% url news_detail new.slug %}" class="image">
<img alt="" src="{{im.url}}" class="frame2"></a>
{% endthumbnail %}
{% endif %}

如果我有像它显示的图像,但是当我没有像我不能使用默认的图片,因为缩略图不起作用

Answer 1:

为我工作,你通常会传递给丑陋的选项,传递路径static模板标签(请注意,它假定HTTP协议,因此它可以改进):

{% with 'http://'|add:request.get_host|add:STATIC_URL|add:image_path as path %}
    {% thumbnail path "720x306" crop="center" as im %}
      <img src="{{ im.url }}" width="{{ im.width }}" height="{{ im.height }}">
    {% endthumbnail %}
{% endwith %}

这是通过建立绝对路径的静态图像。



Answer 2:

老实说...这看起来罚款; 这意味着有可能是一些简单的错误在您的设置。

可能出现的坏设置:你如何定义你的设置STATIC_URL? 此外,什么是DEBUG的值(确保此项设置为True ,如果你在本地开发)? 作为@goliney指出,您的路径可能会混乱。 尝试拉出缩略图块出来,并设置你的形象到src {{ STATIC_URL }}/images/empty-news.jpg和验证尝试做缩略图之前的作品。

忘了装载缩略图:确保把{% load thumbnail %}在模板中的任何引用之前{% thumbnail %}块。



Answer 3:

下面的工作

{% with STATIC_URL|add:"/images/empty-news.jpg" as path %}
    {% thumbnail path "80x80" crop="center" as im %}
        <a href="#" class="image">
            <img alt="" src="{{im.url}}" class="frame2"></a>
    {% endthumbnail %}
{% endwith %}


Answer 4:

我经过了同样的问题我自己的工作。 看来,如果你想在你的模板使用STATIC_URL你需要确保你通过缩略图标签是绝对的这条道路(就好像它是外部治疗的路径。)

显然,相对路径只为MEDIA_ROOT内的图像,似乎专为从模型的图像来工作。

作为测试,尝试在完整的HTTP输入路径。

请参阅: http://sorl-thumbnail.readthedocs.org/en/latest/examples.html



Answer 5:

为了弥补我犯了一个自定义过滤器多一点uglyness,settings.py中采用恒定SITE_URL

settings.py

[...]
SITE_URL = "google.it"
[...]

templatetags/staticthumb.py

from django.conf import settings

from django import template

register = template.Library()

@register.filter()
def static_url(value):
    return ''.join(["http://", settings.SITE_URL, settings.STATIC_URL, value])

然后使用它的模板:

{% load thumbnail staticthumb %}

{% with image_path|static_url as path %}
   {% thumbnail path "720x306" crop="center" as im %}
      <img src="{{ im.url }}" width="{{ im.width }}" height="{{ im.height }}">
   {% endthumbnail %}
{% endwith %}


文章来源: How to thumbnail static files?