英文:
Go Nested Template path as a variable
问题
这真的很简单,但我是一个Go新手,似乎找不到关于如何在嵌套/关联的模板函数中使用变量插值的文档。
这是我尝试从中包含"/path/to/backend.txt"的file.tmpl文件。
blah
{{template $.Backends .}}
blah
在上面的代码中,变量$Backends存在并且是一个字符串,例如"/path/to/backends.txt"。我希望能够简单地将其插入模板函数中,但是Go对此并不满意。会抛出unexpected "$" in template clause
的错误。
对于如何完成这个操作,是否需要转义,或者我完全滥用了整个模板,你有什么建议吗?
谢谢。
英文:
This is really simple, but I'm a Go newb and I can't seem to find the documentation for how I might use a variable interpolation in an nested / associated template function.
Here's the file.tmpl I'm trying to include "/path/to/backend.txt" from.
blah
{{template $.Backends .}}
blah
In the above, the variable $Backends exists and is a string eg. "/path/to/backends.txt". I'm hoping to simply interpolate it into the template function, but Go is not happy with it. Throwing unexpected "$" in template clause
.
Any suggestions on how this is done, escaped, or am I totally abusing the whole template like this?
Thanks.
答案1
得分: 4
“template”的参数不能是一个变量。请注意,“template”不是一个函数,而是一个模板操作。因此,你只能使用常量来实例化一个模板。
不允许使用变量的一个原因是出于安全考虑。如果允许使用变量,那么一个存在漏洞的应用程序将允许将文件系统中的随机文件包含在渲染的模板主体中。
英文:
The argument to "template" cannot be a variable. Note that "template" is not a function, but a template action. So you can only use a constant to instantiate a template.
One reason this is not allowed is security. If a variable was allowed, a vulnerable application would allow random files on the file system to be included in the rendered template body.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论