代码之家  ›  专栏  ›  技术社区  ›  ra9r

雨果中如何将图像从前向物转化为资源对象

  •  0
  • ra9r  · 技术社区  · 7 年前

    当我试图解决一个图片时,我的问题就出现了,这个图片是在我的头版中定义的,并且相对于页面包定位到一个我可以通过 .Resources .

    下面是目录结构的示例…

    |-- content
        |
        +- blog
            |
            +- images
            |  |
            |  +- cover-picture.jpg
            |
            +- my-post.md
    

    以下是我如何申报 hero_image 在前面的事情 my-post.md

    ---
    title: My Post Title
    draft: false
    hero_image: images/cover-picture.jpg
    ---
    
    ...
    
    

    现在我试图将图像解析为一个资源,我可以用两种方式使用。第一个是在一个自定义部分中,该部分生成一个twitter卡,其中包含 英雄形象 .

    文件: /partials/twitter/card_summary.html

    {{ $twitterPic := false }}
    {{ with .Page.Params.hero_image }}
    {{ $heroImg := $.Page.Resources.GetMatch . }}
    {{ $twitterPic = $heroImg.Fit "280x150"}}
    {{ end }}
    
    <meta name="twitter:card" content="summary_large_image">
    <meta name="twitter:site" content="...">
    <meta name="twitter:creator" content="...">
    <meta name="twitter:title" content="{{ .Title }}">
    <meta name="twitter:description" content="{{ .Description }}">
    {{ with $twitterPic }}
    <meta name="twitter:image" content="{{ $twitterPic.Permalink }}">
    {{ end }}
    

    下面是我试图使用相同资源的第二种方法,但在这种情况下,只需获取它 .Permalink

    文件: /layout/blog/single.html

    {{ $heroImg := false }}
    {{ with .Page.Params.hero_image }}
    {{ $heroImg = $.Page.Resources.GetMatch . }}
    {{ end }}
    
    {{ define "twitter"}}
    {{ partial "twitter/card_summary.html" . }}
    {{ end }}
    
    {{ define "main" }}
    
    <section {{ with $heroImg }}style="background-image: url({{ .Permalink }});"{{ end }} class="hero">
      <div class="container">
        <h1>{{ .Title }}</h1>
      </div>
    </section>
    <!-- Rest of templates removed for simplicity -->
    
    {{ end }}
    
    

    在这两种情况下, $.Page.Resources.GetMatch . 正在回归 nil . 我做错什么了?为什么找不到资源?

    0 回复  |  直到 7 年前