You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Hugo循环中图片Resize不生效问题求助

Hugo图片Resize不生效问题排查与解决

可能的问题点及解决办法:

  • 图片资源路径不匹配resources.Get的要求
    resources.Get只能读取项目assets目录下的本地资源,如果你的.Params.cover是外部URL、static目录下的绝对路径(比如/covers/xxx.jpg),或者路径写错了,resources.Get获取到的资源对象其实是无效的——Hugo不会报错,但后续的Resize操作等于没执行,最终输出的还是原图片路径。
    解决:把本地图片移到assets目录下,路径改用相对格式(比如covers/xxx.jpg);如果是外部图片,替换成resources.GetRemote来获取资源再做Resize。

  • Hugo资源缓存未清理
    Hugo会缓存处理过的资源文件,如果你之前没启用图片处理,修改代码后缓存里还是旧的原尺寸图片,导致新处理的图片没被加载。
    解决:删除项目根目录下的resources文件夹,然后重新运行hugo server或hugo build,强制重新生成处理后的图片资源。

  • 未显式输出处理后图片的URL
    直接输出Resize后的资源对象,虽然大部分情况会自动调用RelPermalink,但偶尔可能因为上下文问题输出异常。显式指定输出URL更稳妥。
    解决:把代码里的{{ $image.Resize "500x" }}改成{{ $image.Resize "500x" | relURL }}或者{{ with $image.Resize "500x" }}{{ .RelPermalink }}{{ end }}。

修正后的完整代码示例:

{{ range sort (where .Site.Pages ".Params.layout" "playlist") ".Params.sort" }}
    {{ $coverPath := .Params.cover }}
    {{ $image := resources.Get $coverPath }}
    {{ $resizedImage := $image.Resize "500x" }}
    <div class="w-full max-w-sm bg-gray-900 hover:bg-brand border border-gray-900 rounded-lg shadow">
        <a href="{{ .Params.permalink }}">
            <img class="rounded-t-lg" src='{{ $resizedImage.RelPermalink }}' alt="{{ .Title }}" />
        </a>
        <div class="px-5 mt-4 pb-5 text-center">
             <span class="text-lg mt-8 text-gray-200">{{ .Params.description }}</span>  
        </div>
    </div>
{{ end }}

内容的提问来源于stack exchange,提问作者r3bl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 15:13:36