Go嵌套模板路径作为变量

标签 go go-templates

这真的很简单,但我是 Go 新手,我似乎无法找到有关如何在嵌套/关联模板函数中使用变量插值的文档。

这是我试图从中包含“/path/to/backend.txt”的 file.tmpl。

blah
{{template $.Backends .}}
blah

在上面,变量 $Backends 存在并且是一个字符串,例如。 “/path/to/backends.txt”。我希望简单地将它插入到模板函数中,但 Go 对此并不满意。在模板子句中抛出 意外的“$”

关于如何完成、转义的任何建议,或者我是否完全像这样滥用整个模板?

谢谢。

最佳答案

"template"的参数不能是变量。请注意,"template"不是函数,而是模板操作。所以只能用一个常量来实例化一个模板。

不允许这样做的一个原因是安全性。如果允许变量,易受攻击的应用程序将允许文件系统上的随机文件包含在呈现的模板主体中。

关于Go嵌套模板路径作为变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69170288/

相关文章:

go - 如何在 Go 中取立方根?

loops - 在go模板中获取迭代器索引(consul-template)

go - 用go template生成go模板

javascript - 在 Javascript 中引用 Go 数组

html - 如何在 GoLand 或 PyCharm IDE 中打开与 html 文件相同的 .tmpl 文件?

go - 创建一个空的文本文件

go - 将 x509 certPool 转换为 pemBytes

google-app-engine - 在 App Engine localhost 上启动 Go 服务器会抛出错误

mongodb - 插入 MongoDB 并存储 ObjectID?

Golang 模板 : what is in the context?