如何使用go模板通过FuncMap解析html文件

2023-12-13

我使用以下代码来解析 html 模板。效果很好。

func test(w http.ResponseWriter, req *http.Request) {

    data := struct {A int B int }{A: 2, B: 3}

    t := template.New("test.html").Funcs(template.FuncMap{"add": add})

    t, err := t.ParseFiles("test.html")

    if err!=nil{
        log.Println(err)
    }
    t.Execute(w, data)
}

func add(a, b int) int {
    return a + b
}

和 html 模板 test.html。

<html>
<head>
    <title></title>
</head>
<body>
    <input type="text" value="{{add .A .B}}">
</body>
</html>

但是当我将 html 文件移动到另一个目录时。然后使用以下代码。输出始终为空。

t := template.New("./templates/test.html").Funcs(template.FuncMap{"add": add})

t, err := t.ParseFiles("./templates/test.html")

谁能告诉我出了什么问题吗?或者html/template包不能这样用?


问题是你的程序(html/template包)找不到test.html文件。当您指定相对路径(您的路径是相对路径)时,它们将解析为当前工作目录。

您必须确保 html 文件/模板位于正确的位置。如果你启动你的应用程序go run ...例如,相对路径被解析为您所在的文件夹,该文件夹将是工作目录。

这个相对路径:"./templates/test.html"将尝试解析中的文件templates当前文件夹的子文件夹。确保它在那里。

另一种选择是使用绝对路径。

还有另一个重要的注意事项:不要在处理函数中解析模板!它运行来服务每个传入的请求。而是在包中解析它们init()功能一次。

有关于此的更多详细信息:

在golang中使用“模板”包生成动态网页给客户端需要花费太多时间

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

如何使用go模板通过FuncMap解析html文件 的相关文章

  • 所有可能的 GOOS 价值?

    如果我做对了 GOOS在编译源代码时确定 为了更好地支持多个操作系统 我感兴趣的是GOOS可能 当然 Go 是开源的 所以它可能有无限的可能性 所以我真正想要的是一个 通用列表 已知值为 windows linux darwin or fr
  • golang中如何将相对路径解析为绝对路径?

    节点中是否有类似 path resolve 的API 或者有什么东西可以做同样的事情 例如 nodejs代码 path resolve sample sh 应该得到 home currentuser sample sh 解决 表示用户主目录
  • 静态数组VS。 C++11 中的动态数组

    我知道这是一个非常古老的争论 全世界已经讨论过很多次了 但我目前很难决定在特定情况下应该使用静态数组和动态数组之间的哪种方法而不是另一种方法 实际上 我不会使用 C 11 我会使用静态数组 但我现在很困惑 因为两者可能有相同的好处 第一个解
  • 强制初始化模板类的静态数据成员

    关于模板类的静态数据成员未初始化存在一些问题 不幸的是 这些都没有能够帮助我解决我的具体问题的答案 我有一个模板类 它有一个静态数据成员 必须为特定类型显式实例化 即必须专门化 如果不是这种情况 使用不同的模板函数应该会导致链接器错误 这是
  • 如何递归取消引用指针(C++03)?

    我正在尝试在 C 中递归地取消引用指针 如果传递一个对象 那就是not一个指针 这包括智能指针 我只想返回对象本身 如果可能的话通过引用返回 我有这个代码 template
  • handlebar.js 和handlebar.runtime.js 有什么区别?

    我找到handlebar runtime js has no compile方法 所以我下载的版本不正确 只能使用模板引擎 但什么是handlebar runtime js是为了 那就更好了Download runtime 1 0 0在下载
  • 包含重复键的字典文字是否定义良好?

    如果我写d 0 1 0 2 Python 是否保证d 0 或者是 未定义的行为 当然 这不是你想要的ever编程时写的 不过这个问题大多是出于好奇 在本地 它似乎总是保存与该键最后一次出现关联的值 即2这里 不过 对于一些奇怪的代码生成情况
  • 隐秘模板模板参数错误

    我正在尝试创建一个从 a 获取密钥的函数std map or an std unordered map 我可以使用简单的重载 但首先我想知道这段代码有什么问题 template
  • Django 模板 - 我可以设置要在父模板中使用的变量吗?

    我有一个包含通用导航菜单的父模板 我希望能够添加class selected 到适当的菜单选项 我希望能够在子模板中设置变量 例如 set menu products and do ifequal menu products class s
  • 如何在 Go 中使用与包同名的变量名?

    文件或目录的常见变量名称是 path 不幸的是 这也是 Go 中包的名称 此外 在 DoIt 中更改路径作为参数名称 如何编译此代码 package main import path os func main DoIt file txt f
  • 使用 DictWriter 写入字典键的子集

    我编写了一个函数 使用以下命令将字典列表序列化为 CSV 文件csv模块 代码如下 data csv DictWriter out f fieldnames data writerows dictrows 但是 有时我只想将每个字典键的子集
  • 管理多租户 ArangoDB 连接

    我使用 ArangoDB Go 使用 go driver 并且需要实现多租户 这意味着每个客户都将在单独的数据库中拥有他的数据 我想要弄清楚的是如何使这种多租户发挥作用 我知道为每个请求创建一个新的数据库连接是不可持续的 这意味着我必须维护
  • 如何在python 2.7.8中将非英文字母的字典写入文件?

    这是一个简单的例子 test location 北京 country 中国 the values are Chinese 在文件 test log 中 location 北京 country 中国 在python 2 7 8中 当我需要输出
  • 结构体到磁盘的高效 Go 序列化

    我的任务是将 C 代码替换为 Go 而且我对 Go API 还很陌生 我正在使用 gob 将数百个键 值条目编码到磁盘页面 但 gob 编码有太多不需要的膨胀 package main import bytes encoding gob f
  • 如何在 stl 模板中使用导出类 (__declspec(dllexport))?

    我正在使用导出的类 class declspec dllexport myclass private template declspec dllexport class std map
  • 在链表程序中使用模板时重载 C++ 中的 << 运算符

    我正在尝试实现一个链接列表 但是当我尝试重载 include
  • 重新设计循环依赖缺陷

    我有一堆小服务 它们共享一些常见的包 例如Logger Configuration and Net 我在单独的项目中编写了每个包 问题是我的Logger需求包Configuration用于设置 和我的Configuration not仅由L
  • 如何在C++中实现模板类协变?

    是否可以以这样一种方式实现类模板 如果模板参数相关 一个对象可以转换为另一个对象 这是一个展示这个想法的例子 当然它不会编译 struct Base struct Derived Base template
  • 如何在列表框中显示字典

    我正在尝试将字典中的键 值对显示到列表框 Key Value A 10 B 20 C 30 我想以以下格式将它们显示在列表框中 A 10 B 20 C 30 使用以下代码我已经能够将 Listbox Datasource 链接到 Dicti
  • 如何将列表字典写入字符串而不是 CSV 文件?

    This 堆栈溢出问题 https stackoverflow com questions 37997085 how to write a dictionary of lists to a csv file将列表字典写入 CSV 文件的答案

随机推荐

  • 使用 XmlSerializer 列表反序列化为字典

    我通过将 Dictionary 转换为 List 将数据序列化为 xml 序列化没问题 是否可以在反序列化时填充字典 现在我在反序列化完成并返回列表后填充字典 Serializable public class Attribute publ
  • 查询逗号分隔的 id 到逗号分隔的值

    我有2张桌子 部门 ID Dept 1 HR 2 Accts 3 IT Employee ID Name Depts 1 Kevin 2 1 2 Michelle 1 3 Troy 1 3 4 Rheesa 2 3 1 我正在使用 SQL
  • 有没有办法在一段时间后动态删除表中的一行?

    我试图在创建行 12 小时后从表中删除一行 我的表中有一个 dateTime 列 记录了它的创建时间 有没有办法在 12 小时后动态删除一行 这造成的另一个问题是日期可能在 12 小时内发生变化 这可能会使行的时间戳变得无关紧要 我尝试从类
  • 在 F# 中使用“内联”

    The inline在我看来 F 中的关键字与我习惯的用途有些不同 例如C 例如 它似乎会影响函数的类型 什么是 静态解析类型参数 不是所有 F 类型都是静态解析的吗 我应该什么时候使用inline功能 The inline关键字指示函数定
  • 如何使用ajax和jquery更新特定的div

    我在现场工作 那里有一个铁轨 想想 gmail 框架 就像 gmail 应用程序一样 我只想在单击导航栏上的链接时更新内部 div 我已经得到了它 所以 div 发生了变化 但它肯定没有给我我所希望的结果 这是我所拥有的的一个粗略轮廓 di
  • 更新后无法同时运行多个Android模拟器

    在 SDK Manager 中安装更新之前 它运行良好 但是我无法同时运行两个模拟器 这个问题有什么解决办法吗 我也遇到过同样的问题 为了解决这个问题 我创建了新的 AVD 并尝试运行它 OR emulator arm avd
  • Spring Security 6 CustomAuthenticationFilter(打算替换UsernamePasswordAuthenticationFilter)不起作用

    引用https www baeldung com spring security extra login fields 我打算自定义 Spring security Authentication UsernamePasswordAuthen
  • 为什么应用程序模块不需要提供服务的模块?

    ServiceLoader java 文档指出 强烈建议应用程序模块不需要包含服务提供者的模块 为什么强烈建议这样做 如果不遵循建议会发生什么 上下文 这间接意味着定义服务的模块不应该导出该服务的提供者 我认为在同一模块中提供服务的默认实现
  • 如何使用 EPPlus 从 Excel 文件 (xlsx) 获取/读取图片

    假设我有一个名为sheet1其中包含一张名为pic 001我怎样才能得到这张图片System Drawing Image object 好的 我找到了如何 public static Image GetImage string sheetn
  • Angularjs:预览净化后的 html

    请找到plnkr 我想显示一些 html 预览 html 已经在服务器上进行了清理 例如 lt b gt HELLO lt b gt 我怎样才能显示html表单 在示例中 我想显示myHtml2显示为myHtml 第一次预览 html di
  • 在单选按钮选择上显示元素

    我想展示input text场上radio button普通 JavaScript 中的选择 我缺少什么 const form document querySelector form const size form elements siz
  • 在 Objective-C 中,什么时候应该使用属性,什么时候应该使用实例变量?

    我不熟悉同时具有属性和实例变量的程序语言 所以我不知道使用属性和实例变量的好方法 现在 我在 Objective C 代码中仅使用属性 并且不使用任何实例变量 我需要使用实例变量吗 或者仅使用属性是 Objective C 的最佳实践 in
  • iPhone 上的二进制短信

    我正在寻找有关如何在 iPhone 上实现二进制 SMS 的信息 我特别想知道你需要在 iOS 应用程序中做什么 如果可能的话 监听特定的 SMS 端口并 然后收到专用的二进制短信通知 当然 我正在寻找基于官方 公共 API 的解决方案 没
  • 如何处理多种日期格式?

    当我到达下面的 df date 行时 当具有此格式的日期时应用程序崩溃2016 12 27 14 40 46 0000用来 致命错误 在解包可选值时意外发现 nil 我也看到了这一点 错误 执行被中断 原因 EXC BAD INSTRUCT
  • 使用 CImg 加载 PNG

    我无法使用 CImg 加载 PNG 我听说您需要先获取 libpng zlib 才能开始工作 但我不确定如何设置 我在Ubuntu上 我的来源 include
  • Firefox 上的 Polymer 1.0 ReferenceError:Polymer 未定义

    您好 我在 Chrome 和 Opera 上有一个可用的 Polymer 1 0 网页 现在我需要该页面在 Firefox 和 Safari 中运行 我有以下测试
  • Iframe 下的 IE11 怪异模式 - javascript 错误

    我几天来一直在阅读和寻找答案 但找不到答案 希望这篇文章能带来救赎 在我的公司 我们有一个在 IE8 上运行的网络应用程序 我们正在尝试迁移到 IE11 我们快到了但是 我们有一个旧模块 它是在旧框架中编写的 该框架托管在 iframe 中
  • 如何在 django-cms 中使用 iframe

    我正在寻找一个好的解决方案 使最终用户能够在模板占位符中插入 iframe Soundcloud 我考虑过使用 djangocms text ckeditor 插件 在里面文档它说使用可配置的清理程序来完成此操作 djangocms tex
  • ClassCastException 在 scala 中使用 ArgumentCapture for Double

    我使用时遇到问题ArgumentCapture for a Double在斯卡拉 我正在尝试捕捉一个Double对被嘲笑的特质的论证 当尝试捕获时 相同的语法可以正常工作Int 这是一个测试示例 import org scalatest F
  • 如何使用go模板通过FuncMap解析html文件

    我使用以下代码来解析 html 模板 效果很好 func test w http ResponseWriter req http Request data struct A int B int A 2 B 3 t template New