3

私は非常に厄介な問題に遭遇しました。問題の原因を突き止めるのに約 1 時間かかりましたが、理由はわかりません。

私はhtml/templateWeb ページのレンダリングに使用していますが、コードは次のようになります。

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です。

情報が提供されなかったので、問題の特定に効果がありましたが、なぜそれが起こるのでしょうか? colsed されていないタグがどうしてそのような問題を引き起こすのでしょうか? そして、それをデバッグする方法は?

4

2 に答える 2

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の (エラー印刷あり) です。

ここにあります。Playgroundに固定されています

于 2015-03-14T16:20:07.483 に答える