为了账号安全,请及时绑定邮箱和手机立即绑定

浏览器不解释 html 模板

浏览器不解释 html 模板

Go
呼如林 2021-08-10 15:19:12
我在一个非常小的 Go 应用程序中有一个函数,它对数据库进行查询,检索一些数据并将其插入模板 (main.html)。数据被插入到模板中(见图片),但是浏览器(Chrome 和 Firefox)没有解释 html我的浏览器在其他方面工作正常。我对模板有什么不正确的地方吗?func Root(w http.ResponseWriter, r *http.Request) {    t := template.Must(template.New("main").ParseFiles("main.html"))    rows, err := db.Query("SELECT title, author, description FROM books")    PanicIf(err)    defer rows.Close()    books := []Book{}    for rows.Next() {        b := Book{}        err := rows.Scan(&b.Title, &b.Author, &b.Description)        PanicIf(err)        books = append(books, b)    }    t.ExecuteTemplate(w, "main.html", books)}主文件<html>  <head>    <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.0/css/bootstrap.min.css">  </head>  <body>    <div class="container">     <table class="table">  <tr>    <th>Title</th>    <th>Author</th>    <th>Description</th>  </tr>{{ range . }}  <tr>    <td>{{.Title}}</td>    <td>{{.Author}}</td>    <td>{{.Description}}</td>  </tr>{{ end }}</table>    </div>  </body></html>
查看完整描述

2 回答

?
回首忆惘然

TA贡献1847条经验 获得超11个赞

您需要设置内容类型,虽然它没有自动为您设置它很奇怪。


w.Header().Set("Content-Type", "text/html; charset=utf-8")

t.ExecuteTemplate(w, "main.html", books)

//编辑


同样为了正确起见,您应该添加<!DOCTYPE html>到模板的顶部,但与问题无关。


查看完整回答
反对 回复 2021-08-10
?
慕斯709654

TA贡献1840条经验 获得超5个赞

很可能您正在做import "text/template"并且应该做import "html/template",但另一个答案也会为您解决。


查看完整回答
反对 回复 2021-08-10
  • 2 回答
  • 0 关注
  • 233 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信