Jekyll 中如何知道 URL 是相对 URL 还是绝对 URL?

use*_*251 4 liquid jekyll github-pages

我正在尝试在 Jekyll 中执行以下操作:

  • 我有一个网址;

  • 该 URL 可以是相对的(“/media/image.jpg”)或绝对的“ http://example.com/image.jpg ”;

  • 如果 URL 是相对的,我必须在其开头附加我的站点域(“ http://my-site/media/image.jpg ”)。如果不这样做,什么都不会改变。

遗憾的是我还不知道如何实现这一目标。

如果有人能帮助我,我很乐意。

提前致谢。

bit*_*dev 5

您可以使用液体来完成此操作。这是您可以执行的操作的基本示例。您可能需要对其进行调整以供自己使用。

{% assign myurl = "/css/bootstrap.min.css" %}
{% if myurl contains '://' %}
{{myurl}}
{% else %}
{{ myurl | prepend: site.url }}
{% endif %}
Run Code Online (Sandbox Code Playgroud)

分解代码:

此行仅创建一个保存 url 的变量:

{% assign myurl = "/css/bootstrap.min.css" %}
Run Code Online (Sandbox Code Playgroud)

接下来,我们将检查 url 是否是绝对的。://这个简单的版本通过检查url 中的字符串 , 来实现这一点:

{% if myurl contains '://' %}
Run Code Online (Sandbox Code Playgroud)

如果 url 存在,liquid 将简单地打印出 url 变量:

{{myurl}}
Run Code Online (Sandbox Code Playgroud)

如果没有,liquid 会将网站的 url 添加到 url 的开头并打印完整的 url:

{% else %}
{{ myurl | prepend: site.url }}
{% endif %}
Run Code Online (Sandbox Code Playgroud)