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

去多个 response.WriteHeader 调用 Fprint

去多个 response.WriteHeader 调用 Fprint

Go
开满天机 2021-08-23 16:42:53
我想先打印出文本消息,然后在文本下方,显示图像。但我得到http: multiple response.WriteHeader calls的错误。如何服务iamges和文字使用一个哈德勒在一个单一的页面?func handler(w http.ResponseWriter, r *http.Request) {  fmt.Fprint(w, "Hello, world!")  fp := path.Join("images", "gopher.png")  http.ServeFile(w, r, fp)}func main() {  http.HandleFunc("/", handler)  http.ListenAndServe(":3000", nil)}
查看完整描述

1 回答

?
Helenr

TA贡献1780条经验 获得超4个赞

不能写文本然后调用ServeFile在文本后面输出一个二进制图片。


如果你想为文字与图像,然后使用HTML,设置一个静态文件处理程序,并用html:


var tmpl = `<!doctype html>

<html>

    <head>

        <title>%s</title>

    </head>

    <body>

    <h1>%s</h1>

    <div><img src="images/%s"></div>

    </body>

</html>

`


func handler(w http.ResponseWriter, r *http.Request) {

    fmt.Fprintf(w, tmpl, "Hello, world!", "Hello, world!", "gopher.png")

}


func main() {

    http.HandleFunc("/", handler)

    http.Handle("/images/", http.FileServer(http.Dir("images/")))

    http.ListenAndServe(":3000", nil)

}


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

添加回答

举报

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