我遇到了一个非常麻烦的问题,我花了大约一个小时来确定导致问题的原因,但我不知道为什么:
我正在使用html/template
来修改网页,代码如下:
t, _ := template.parseFiles("template/index.tmpl")
...
t.Execute(w, modelView) // w is a http.ResponseWriter and modelView is a data struct.
但无意识地,我犯了一个错误,让<textarea>
标签打开:
<html>
<body>
<form id="batchAddUser" class="form-inline">
**this one** --> <textarea name="users" value="" row=3 placeholder="input username and password splited by space">
<button type="submit" class="btn btn-success" >Add</button>
</form>
</body>
</html>
然后Go没有提供任何异常和其他提示,但只是给出一个没有任何内容的空白页面,状态代码为200
。
由于没有提供任何信息,因此找到了解决问题的效果,但为什么会发生这种情况?一个未着色的标签怎么会引起这样的问题呢?以及如何调试?
答案 0 :(得分:6)
它告诉你错误,你只是忽略它。
如果你看一下Execute返回的错误,它会告诉你你的html是坏的。
您应该始终检查错误。类似的东西:
t, err := template.New("test").Parse(ttxt)
if err != nil {
...do something with error...
}
err = t.Execute(os.Stdout, nil) // w is a http.R
if err != nil {
...do something with error...
}
上的(有错误打印)
此处固定在Playground
上答案 1 :(得分:3)