如何阻止 go html/template 转义路径(尝试过 .HTML .JS 等)

How to stop go html/template from escaping a path (tried .HTML .JS etc.)

我在 assemble 页面上使用 html/template 功能,我提供给模板的变量之一是使用“/some/path/etc”形式的 URI作为在 onClick="..".

中调用的 JS 函数的参数

无论如何,此配置中使用的字符串将使用反斜杠进行转义:"\/some\/path\/etc"

正如您在下面的 playground 示例中所见,我尝试了所有 .HTML()、.JS() 等函数,但似乎没有任何东西可以阻止转义。

在此处查看 Go Playground 示例:https://play.golang.org/p/2gdghTpQHKP

如何将此 URI "as is" 放入模板结果中?

感谢 mkopriva 的评论。

据我所知,没有办法(如 mkopriva 所述)在 Go HTML 模板中处理 HRML 属性值片段。 所以选项是:

  1. 保持原样(似乎至少在我的用例中,URI 甚至可以在使用转义正斜杠的进一步处理中工作)
  2. 首先连接完整的属性,以便 "HTML Attribute" 方式接受它
  3. 编写一个构造函数,在模板执行中获取部分并组装最终的属性值
  4. 以某种形式对值进行硬编码