Go 占位符不会被替换

Go 占位符不会被替换,go,go-templates,Go,Go Templates,我正在试用这个包http/template 我也已经管理过,例如,基本模板中包含页眉、页脚、导航栏等: {{define“base”} {{模板“头”} {{模板“导航栏”} {{模板“内容”} {{模板“页脚”} {{end} 404页: {{定义“内容”} [...] 404 {{.CurrentURL} [...] {{end} 因此,这里的变量CurrentURL应替换为当前URL。 但是,在网站上,这仅显示为空(“): 但是现在我想替换一个变量,它在网页上只显示为“” Go代码

我正在试用这个包
http/template

我也已经管理过,例如,基本模板中包含页眉、页脚、导航栏等:

{{define“base”}
{{模板“头”}
{{模板“导航栏”}
{{模板“内容”}
{{模板“页脚”}
{{end}
404页:

{{定义“内容”}
[...]
404
{{.CurrentURL}
[...]
{{end}
因此,这里的变量
CurrentURL
应替换为当前URL。 但是,在网站上,这仅显示为空(
):


但是现在我想替换一个变量,它在网页上只显示为“”

Go代码: 解析器:

func(parser*TemplateParser)ParseTemplate(名称字符串)(tpl*template.template,err error){
root,err:=template.New(“root”).Parse(rootTmpl)
// ...
返回root.ParseFiles(文件…)
}
路线:

func(ws*WebServer)Exec(名称字符串,r*http.Request,w http.ResponseWriter,数据映射[string]接口{})(错误){
// ...
//添加默认数据
数据[“CurrentURL”]=r.URL.RequestURI()
// ...
返回tpl.Execute(w,数据)
}
即使使用数组,我也不能使用
range
等:

类型测试结构{
当前URL字符串
C[]字符串
}
t:=试验{
CurrentURL:“当前URL”,
C:[]字符串{“C1”、“c2”、“ccc4”},
}
第三方物流执行(w,t)
    {{range.C}}
  • {{}}
  • {{end}

我做错了什么?

您没有向子模板传递任何数据:


您必须将上下文传递给实例化的模板。使用

{{ template "content" .}}

中的数据传递到
内容
模板。

哦,这么小的一个点,我在搜索自己。谢谢你的回答!
{{ template "content" .}}