Go语言 当图像是对象数组的元素时,如何显示存储为页面资源的图像?

flseospp  于 2023-02-17  发布在  Go
关注(0)|答案(1)|浏览(107)

我前面的内容中的图像是这样存储的:

images:
  - image: image_1.jpg
    caption: "image 1 caption"
  - image: image_2.jpg
    caption: "image 2 caption"

我只想显示第一个,所以我使用以下代码:

{{ $image := .Resources.GetMatch (printf "**%s" (index .Params.images 0).image) }}

奇怪的是,只有当我在本地hugo服务器运行时添加.image部分,这个功能才能正常工作,当我停止并再次启动它时,网站无法重建,并出现以下错误:

... execute of template failed: template: partials/content/figure.html:7:70: executing "partials/content/figure.html" at <0>: can't evaluate field image in type string

我只想能够访问images[0].image。我如何才能使其工作?

flvlnr44

flvlnr441#

我发现我有一些其他的内容类型,其中images在前面的内容中仍然是简单数组,而不是对象数组。这导致了我的构建错误。为了解决这个问题,我使用了下面的here

{{ $image := "" }}
{{ if reflect.IsMap (index .Params.images 0) }}
  {{ $image = .Resources.GetMatch (printf "**%s" (index .Params.images 0).image) }}
{{ else }}
  {{ $image = .Resources.GetMatch (printf "**%s" (index .Params.images 0)) }}
{{ end }}

相关问题