Golang从文件中嵌入HTML

如果我有这样的HTML文件,该如何在Golang中进行操作:

<html>

<head lang="en">

</head>

<body>

<header>{{.Header}}</header>

<div class="panel panel-default">

</div>

</body>

</html>

我想将一部分代码嵌入到其他文件的标头标签中,如下所示:

<div id="logo"></div><div id="motto"></div>

我的尝试:

header, _ := template.ParseFiles("header.html")

c := Content{Header: ""}

header.Execute(c.Header, nil)

index := template.Must(template.ParseFiles("index.html"))

index.Execute(w, c)

回答:

如果使用template.ParseFiles()或来解析所有模板文件template.ParseGlob(),则模板可以相互引用,它们可以互相包含。

更改您的内容index.html以包括header.html以下内容:

<html>

<head lang="en">

</head>

<body>

<header>{{template "header.html"}}</header>

<div class="panel panel-default">

</div>

</body>

</html>

然后是完整的程序(从当前目录解析文件,执行"index.html"并将结果写入标准输出):

t, err := template.ParseFiles("index.html", "header.html")

if err != nil {

panic(err)

}

err = t.ExecuteTemplate(os.Stdout, "index.html", nil)

if err != nil {

panic(err)

}

有了template.ParseGlob()它可能看起来像这样:

t, err := template.ParseGlob("*.html")

// ...and the rest is the same...

输出(打印在控制台上):

<html>

<head lang="en">

</head>

<body>

<header><div id="logo"></div><div id="motto"></div></header>

<div class="panel panel-default">

</div>

</body>

</html>

以上是 Golang从文件中嵌入HTML 的全部内容, 来源链接: utcz.com/qa/418571.html

回到顶部