当前位置: 首页 > 面试题库 >

Golang从文件中嵌入HTML

柳奇希
2023-03-14
问题内容

如果我有这样的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>


 类似资料:
  • 问题内容: 我有一些从Go程序中读取的文本文件。我想提供一个可执行文件,而无需另外提供该文本文件。如何将其嵌入Windows和Linux上的编译中? 问题答案: 使用go-bindata。从自述文件: 该工具可将任何文件转换为可管理的Go源代码。对于将二进制数据嵌入到go程序中很有用。在转换为原始字节片之前,可以选择对文件数据进行gzip压缩。

  • 问题内容: 是否可以在不使用嵌入式结构的情况下继承类型的方法? 代码的第一个片段是将结构嵌入其中的工作代码,我可以在上调用该方法。我不喜欢的是,当我初始化时,我有(?)来初始化其中的结构。有没有解决的办法? 最终,我想做以下事情。where 是类型和初始化位置,也不需要初始化结构。以下代码不起作用,但可能清楚我的目标是什么。 我将添加更多使用的方法的结构,这就是我要问的原因。如果只拥有,我将拥有可

  • docsify 4.6 开始支持嵌入任何类型的文件到文档里。你可以将文件当成 iframe、video、audio 或者 code block,如果是 Markdown 文件,甚至可以直接插入到当前文档里。 这是一个嵌入 Markdown 文件的例子。 [filename](_media/example.md ':include') example.md 文件的内容将会直接显示在这里 filen

  • 问题内容: 我在尝试从另一个包和文件导入类型时遇到问题。我要导入的结构是下面的那个。 如果我将PriorityQueue及其所有方法放在同一个文件中,则可以使用 我一直在像疯子一样在互联网上搜索这个简单问题的答案,但我没有找到答案。我通常用Java编程,而导入类是如此基础。 问题答案: 在Go中,您不导入类型或函数,而是导入 包 (请参见Spec:导入声明)。 导入声明示例: 通过导入包,您可以访

  • 问题内容: 我在将applet嵌入网页时遇到麻烦。我认为我做的不正确。 * 我的html文件与.class文件位于同一目录中 我的主要方法是在CardApp类中 这是我的html代码 问题答案: 要使applet在各种浏览器上都能正常工作是非常困难的。早期,标签没有得到适当的标准化,因此Internet Explorer和Mozilla采取了不同的方向。 Sun开发了一种通用JavaScript,

  • 并且使用此代码: 火狐没有任何问题打开文件,Chrome,IE和其他是的,我可以做什么来解决这个问题?非常感谢最诚挚的问候