Golang从文件嵌入html

2023-12-28

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

My try:

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() https://golang.org/pkg/html/template/#ParseFiles或与template.ParseGlob() https://golang.org/pkg/html/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)
}

With 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>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Golang从文件嵌入html 的相关文章

随机推荐

  • 是否有更快的代码用于向表中添加新行 - Excel VBA

    每当我的代码找到要添加到其中的新值时 我都会向表中添加一个新行 我为此使用的代码Set newRow ProjectTable ListRows Add工作正常 但这使其运行速度非常慢 是否有代码可以完成相同的任务但运行速度更快 Dim P
  • 如何在flutter中自定义标签栏宽度?

    您好 我们可以在 flutter 中自定义标签栏宽度吗 我的标签栏宽度是固定的 所以当我的标签栏中有长文本时 它不会完全显示 我想让我的标签栏宽度根据内容灵活 所以当我的文本只是短文本时 标签栏宽度会很小 当文本是长文本时 选项卡栏宽度大于
  • 来自 github 存储库的 Scala sbt 文件依赖项

    是否可以包含来自 github 的依赖项 存储库没有 jar 文件 只有 build sbt 文件和源文件夹 您可以创建一个新项目 该项目指向您的源代码build sbt然后使用dependsOn lazy val projectIDepe
  • 下标运算符中的逗号运算符?

    我对逗号运算符很困惑 我从来没有见过这样的代码和这样的语法 但我很好奇它在任何地方都有用吗 为什么它在 c 20 中被弃用 include
  • 如何创建全局热键?

    我想创建一个热键 因此当您按下时 它应该将一些字节写入我附加的进程中的内存地址 到目前为止 我有这段代码 但似乎只有当我专注于主应用程序时它才有效 否则它将无法工作 我想让它工作 所以它会做我想做的事 即使我不关注主应用程序 private
  • xlsxwriter下拉列表Excel错误

    要对特定列中的所有行应用数据验证 请使用以下顺序 import xlsxwriter workbook xlsxwriter Workbook data validate2 xlsx worksheet workbook add works
  • 冲突解决后强制在 TFS 中合并

    TFS 2010 VS 2010 我们在 TFS 中遇到了一种情况 开发人员没有遵循正确的合并程序 当我将他的开发者目录与主干进行比较时 我得到了许多标记为不同或根本不在主干中的文件 他最后一次合并 签入主干是在 2011 05 26 他最
  • CUDA 功能和 CUDA 版本:兼容吗?

    我有一台具有 1 1 计算能力 CUDA GPU 的机器 我想重新安装 CUDA 我想我会选择 5 0 CUDA 功能和 CUDA 版本之间是否存在兼容性之类的问题 将 CUDA 5 0 与 C C 1 1 一起使用时会遇到麻烦吗 图形处理
  • 如何使用 overpass-api 获取我所在点附近的兴趣点?

    我正在使用 Overpass API 我无法找到我的地点附近 大约 100 200 英里 的一些兴趣点 咖啡馆 医院 学校 我只有纬度和经度 Overpass API 提供了使用您的地名获取 POI 的机会 但我没有 我只有坐标 我怎样才能
  • 如何在 Java EE 中使用 CDI 编写 main()?

    我有一个想要运行的无客户端应用程序 它没有客户端 但会进行 HTTP 调用并充当其他服务的客户端 它可能会运行几个小时或几天 但不需要定期运行 只需一次性 我想在 Java EE 7 容器中运行它 因为标准上下文依赖注入 CD 和标准 JA
  • Django 模型定义竞赛

    如果模型 A 依赖于所定义的模型 B 但模型 B 也依赖于所定义的模型 A 那么如何处理这种情况 例如 我有 class event models Model competition start models DateField compe
  • PointerByReference 不返回值

    我正在尝试通过 JNA 从 Java 调用 C 函数 我想传入一个字符串 然后返回一个字符串 这是通过使用 in 参数和 out 参数来完成的 我用PointerByReference来代表char 输出参数 对 C 的调用有效 但是Poi
  • 让 Restangular 的 .remove 在正文与 URI 中发送数据

    我正在将 Angular REST 调用转换为使用 Restangular 在此转换期间 我只是将调用移至使用 Restangular one controller remove object 这是调用正确的 URI 和方法 DELETE
  • Redux - 错误:mergeProps 的类型对象值无效

    我在使删除调度事件正常工作时遇到问题 我正在尝试从状态中删除列表项 我得到的错误如下 Error Invalid value of type object for mergeProps argument when connecting co
  • 使用汽车包中的散点图绘制并排图

    是否有某种原因无法并排放置两个散点图 来自汽车包装 图形 library car str UN par mfrow c 1 2 scatterplot infant mortality gdp data UN xlab GDP per ca
  • 如何在android中实现两个同步视图之间的滑入和滑出动画

    我知道我可以使用AnimatedVisibility可组合功能并实现可见性动画的滑入动画 但我想要实现的是当一个布局处于进入动画而另一个处于退出动画时 类似于下图 NB 我知道我应该为不同的屏幕使用导航组合 并且目的地之间的动画仍在开发中
  • HTML5 输入类型范围 - 非线性序列?

    我想使用滑块控件来输入选择 可能的值为 5000 25000 50000 75000 和 100000 但是 我无法获取范围输入来限制这些选择 我得到的最接近的是
  • Android中如何从apk中获取包名?

    我正在开发一个应用程序 其中包含应用程序列表 单击后 用户将被重定向到 Play 商店以下载此应用程序 成功下载后 我必须将该应用程序包名称发送到服务器以验证它 我怎样才能做到这一点 我假设您想在运行时执行此操作 因此您的应用程序可以读取自
  • 重命名 Pandas 中的“None”值

    这可能非常简单 但我就是找不到答案 我使用 GeoPandas 从形状文件导入数据 把它变成熊猫DataFrame 我有一个带有三个字母代码的对象字段和None缺失数据的值 我该如何改变None类似于 pandas 中的 vcv 我试过这个
  • Golang从文件嵌入html

    如果我有这样的 HTML 文件 我该如何在 Golang 中执行以下操作