0

私は、いくつかのデータを外部 HTML ファイルに解析し、そのファイルを Web サーバーに提供するだけの単純な go lang Web サーバーを手に入れました。

package main

import (
    "html/template"
    "net/http"
)

type Event struct {
    Name string
}

func handler(w http.ResponseWriter, r *http.Request) {
    e := Event{ Name: "Melt! Festival" }
    t, _ := template.ParseFiles("events.html")
    t.Execute(w, e)
}

func main() {
    http.HandleFunc("/", handler)
    http.ListenAndServe(":1337", nil)
}

しかし、セットを使用して HTML ファイルを解析しようとすると、ブラウザーで HTML をレンダリングする代わりに、HTML ページがテキストとして解析されます。

<!DOCTYPE>
<html>
<head>
    <title>Event</title>
</head>
<body>
    <p>
        Event: {{.Name}}
    </p>
</body>
</html>

HTMLファイルを除外する<!DOCTYPE>と、問題なくレンダリングされます。

私は本当に興味があるので、これがなぜなのか誰か教えてもらえますか? go コードが機能しない原因を 2 時間かけて探しました。

4

2 に答える 2

2

doctype 宣言が正しくないため、目的とは反対の効果があります。おそらく、ドキュメントがHTMLではないことを示すものとしてブラウザーによって解釈されます。

これを使って :

<!DOCTYPE html>

リファレンスを参照してください。

于 2013-07-28T17:26:52.663 に答える
0

代わりに、ファイルで DOCTYPE html を使用してみましたか?

于 2013-07-28T17:27:09.780 に答える