如何通过静态标签wagtail 2.5中的变量为webp服务

时间:2019-09-11 00:49:47

标签: python django templates wagtail

我将转盘订购了。每个实例通过picture元素都有一个webp文件名的图像和字符字段。当我对srcset进行硬编码而不是使用{{variable}}时,webp图像加载非常完美。

问题是,使管理员后端无法保持动态状态,并使我难以对网站上的每张图片或我想在Google上排名的页面进行硬编码。香港专业教育学院读过很多其他的职位,但我仍然坚持。有什么方法可以从后端干净地提供webp文件名?

我读过。

load static file with variable name in django

django 1.5 - How to use variables inside static tag

这是最接近解决我问题的方法,但还不够。

https://snakeycode.wordpress.com/2015/02/20/variables-in-django-static-tags/

轮播订购字段

carousel_image = models.ForeignKey("wagtailimages.Image",       on_delete=models.SET_NULL,related_name="+",) 
webp = models.CharField(max_length=100, blank=True, null=True)

家庭模板轮播

{% for loop_cycle in self.carousel_images.all %}
{% image loop_cycle.carousel_image max-750x500 as img %}

<picture>
<source srcset="{% static '{{loop_cycle.webp}}'%}" type="image/webp" >
<img src="{% static '{{img.url}}'%}" alt="{{ img.alt }}">
</picture>

当我进行硬编码时,这很完美,但是拥有可订购的下一代图像友好型轮播又有什么意义呢?谢谢您阅读《我要疯了》

<picture>
<source srcset="{% static '{{loop_cycle.webp}}'%}" type="image/webp" >
<img src="{% static '{{img.url}}'%}" alt="{{ img.alt }}">
</picture>

当我进行硬编码时,这很完美,但是拥有可订购的下一代图像友好型轮播又有什么意义呢?谢谢您阅读《我要疯了》

1 个答案:

答案 0 :(得分:0)

好吧,也做了些麻烦,弄清楚这里是工作代码。

<picture>
<source srcset="{% static 'webp/'|add:loop_cycle.webp|add:'.webp' %}" type="image/webp" >

<img src="{% static 'webp/'|add:loop_cycle.webp|add:'.webp' %}" alt="{{ img.alt }}">
</picture>

我很高兴!!!!