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

Hugo使用resources.Minify报wrong type for value类型错误

报错原因

报错由两个独立问题共同触发:

  • 资源查找路径错位:Hugo 资源处理管道(包含 resources.Get、resources.Minify 在内的所有资源操作函数)的固定扫描范围,仅覆盖项目根目录下的 assets/ 文件夹,不会识别 public/ 目录下的任何文件——public/ 是 Hugo 构建生成的成品输出目录,不属于源资源的读取范围。代码中写的 resources.Get "css/styles.css" 实际查找路径为 <项目根>/assets/css/styles.css,和实际存储在 <项目根>/public/assets/css/styles.css 的文件路径完全不匹配。
  • 空值传入触发类型校验失败:当 resources.Get 无法找到匹配资源时,会返回空的 resource.Resource 类型对象。代码没有对返回值做非空判断,直接将该空对象传入要求resources.ResourceTransformer类型入参的resources.Minify管道,最终触发模板执行时的类型不匹配报错。
修正步骤
  • 调整CSS源文件存放位置
    将public/assets/css/styles.css下的样式文件,移动到项目根目录下的assets/css/styles.css路径。注意不可将源资源存储在public/目录中,该目录内容会在每次Hugo重新构建时被自动清空覆盖。
  • 优化模板代码逻辑,避免空值传参
    修改layouts/index.html中的CSS处理代码,在执行压缩操作前先校验资源是否成功加载,最终可正常运行的代码如下:
{{ $styles := resources.Get "css/styles.css" }}
{{ with $styles }}
  {{ $styles = . | resources.Minify }}
  <link rel="stylesheet" href="{{ $styles.Permalink }}" media="screen" />
{{ end }}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.28 07:06:02