网站添加图片之后,性能指标评分下降,因为图片加载时间长。之前想着做image resize,由于cloudflare的image resize需要收费,所以一直没有做。今天发现hugo内置了image resize的功能,本文是相应记录。
Hugo resize
搜索hugo resize,找到对应功能resize,配置相应代码。
实施方案
找到layouts/_default/_markup/render-image.htm
,修改为如下代码,要点是resources.Get和Resize。里面包含我们之前添加的hugo fancybox代码。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| {{if .Page.Site.Params.usefancyapp }}
<div class="post-img-view">
{{ $src := .Destination }}
{{ with resources.Get .Destination }}
<a data-fancybox="gallery" href="{{ .RelPermalink | safeURL }}" >
{{ with .Resize "684x webp q85 lanczos" }}
<img loading="lazy" src="https://img.houzikeji.com{{ .RelPermalink | safeURL }}" width="{{ .Width }}" height="{{ .Height }}" {{ with .Title}} title="{{ . }}"{{ end }} />
{{ end }}
</a>
{{ end }}
</div>
{{ end }}
|
FAQ
Q:添加了代码,为什么获取不到图片?
A:使用resources.Get,你的图片需要放到assets目录下面。
Q:为什么在Cloudflare Pages上面不行?
A:可能是cloudflare pages上面的hugo版本低了,可以添加环境变量HUGO_VERSION指定更高版本的hugo。