我在帖子中使用了以下include标记:
{% include image.html url="{{ site.url }}/files/image.png" description="Figure 1. image description." %}
包含的image.html
如下所示:
<figure>
<img src="{{ include.url }}" alt="{{ include.description }}">
<figcaption>{{ include.description }}</figcaption>
</figure>
在_config.yml
我使用url: "http://domain.com"
。
但是,在为我的Jekyll博客提供服务时,{{ site.url }}
未被解释,导致:
<figure>
<img src="{{ site.url }}/files/image.png" alt="Figure 1. image description.">
<figcaption>Figure 1. image description.</figcaption>
</figure>
有谁能告诉我为什么在这种情况下解释不起作用?
答案 0 :(得分:1)
使用相对网址
{% capture imgFullUrl %}{{ site.url }}{{ site.baseurl }}/files/image.png{% endcapture %}
{% include img.html url=imgFullUrl description="Figure 1. image description." %}
使用完整网址
{% capture imgRelativeUrl %}{{ site.baseurl }}/files/image.png{% endcapture %}
{% include img.html url=imgRelativeUrl description="Figure 1. image description." %}
答案 1 :(得分:0)
您根本不需要使用{{ site.url }}
。
从技术上讲,如果HTML位于某个页面http://domain.com,
<img src="/files/image.png">
与
相同<img src="http://domain.com/files/image.png">
/files/image.png
)不要将{{ site.url }}
从您的实际网页传递到包含。改为在include中包含它:
{% include image.html url="/files/image.png" description="Figure 1. image description." %}
然后
<figure>
<img src="{{ site.url }}{{ include.url }}" alt="{{ include.description }}">
<figcaption>{{ include.description }}</figcaption>
</figure>
如果您想同时显示来自外部网址的图片,则不能只在{strong>每个图片网址前面点击{{ site.url }}
。
在这种情况下,您可以检查图片网址是否以/
开头,并且只有在这种情况下才会显示{{ site.url }}
:
<figure>
{% assign tmp = include.url | truncate: 1, '' %}
<img src="{% if tmp == '/' %}{{ site.url }}{% endif %}{{ include.url }}" alt="{{ include.description }}">
<figcaption>{{ include.description }}</figcaption>
</figure>