首页 > 解决方案 > SSR index.html 编译

问题描述

我正在使用 Go + VueJS 堆栈,但遇到了 SSR 问题。

我用 GO 预编译 index.html 以创建元标记(使用 html/模板)

{{ range index . "metaTags" }}
  <meta {{.Key |safe }}='{{ .Name }}' {{ .Type |safe }}='{{ .Content }}' data-vue-router-controlled />
  {{ end }}
  

但是当我用 VueJS 编译时 index.html 是变量设置为小写,所以 Go 无法设置变量。前任。键改为键。

解决办法是什么?

标签: vue.jsgo

解决方案


解决方法是将 html 生成传递给函数,因此 html 文件被替换为

{{ range $el := index . "metaTags" }}
  {{$el|meta}}
  {{ end }}

我们注册一个函数来创建 HTML

template.FuncMap{
            "meta": func(s api.Tag) template.HTML {
                return template.HTML("<meta " + s.Key + "=\"" + s.Name + "\"  " + s.Type + "=\"" + s.Content + "\" data-vue-router-controlled />")
            },
        }

结构

type Tag struct {
    Key     string `json:"key"`
    Name    string `json:"name"`
    Type    string `json:"type"`
    Content string `json:"content"`
}

推荐阅读