【发布时间】:2020-09-13 08:00:33
【问题描述】:
我想在 Go 模板中按原样使用我的变量的值,但 Go 在它周围添加了额外的引号。例如,对于像
这样的 Go 模板{{.Site}}:{{.Port}}/{{.Path}}
我想得到输出
Mysite:3000/from/here
但模板给了我以下内容:
"Mysite":"3000"/"from/here"
所以,
- 我怎样才能解决它(去掉所有额外的引号或更好地暂停它们)?见https://play.golang.org/p/uKpgXdLv5gM
- Go 模板也将
"orgId=1&refresh=30s"更改为orgId=1\u0026refresh=30s,如何避免? - 此外,如果我将
https://添加到我的网址前面,输出将被截断。如何解决这个问题? - 最后,是否可以在“`”中转义“`”?
【问题讨论】:
-
您是否尝试过使用普通的
"? play.golang.org/p/D1uUcOHuQZu html/template 包对数据进行清理以避免注入。 docs 包含有关其功能的更多详细信息。 -
谢谢@Marc,由于 JS 中的
${othervars},我需要“`”。我只展示了一个,但是在JS字符串构建中我有很多。 -
文档可能会告诉你怎么做,我还没有检查过。极端的解决方案是使用 text/template 包,但它不会清理任何东西。
-
或使用 concat 函数。
标签: go-templates