如何在Fprintf输出中添加正文标题?

时间:2019-03-14 16:24:01

标签: go

我正在尝试将<title>Go</title>添加到我的代码示例中:

package main

import (
    "fmt"
    "net/http"
    "os"
)

func favicon(w http.ResponseWriter, r *http.Request) {
    http.ServeFile(w, r, "favicon.ico")
}

func sayhelloName(w http.ResponseWriter, r *http.Request) {
    hostname, _ := os.Hostname()
    fmt.Fprintf(w, "\n\nSystem info:\nHostname [pod name]: %s", hostname)
    fmt.Fprintf(w, "\nCurrent URL: %s\n", r.Host)
}

func main() {
    http.HandleFunc("/favicon.ico", favicon)
    http.HandleFunc("/", sayhelloName)
    http.ListenAndServe(":80", nil)
}

我尝试添加如下内容: fmt.Fprintf(w, "<title>Go</title>")。它可以工作,但是会弄乱旁边的字符串。我不想仅使用html模板在页面上添加标题。有什么方法可以在一个字符串中添加标题?

1 个答案:

答案 0 :(得分:-1)

未使用html模板。只使用了fmt.Fprintf。

package main

import (
    "fmt"
    "log"
    "net/http"
    "os"
)

func favicon(w http.ResponseWriter, r *http.Request) {
    http.ServeFile(w, r, "favicon.ico")
}

func sayhelloName(w http.ResponseWriter, r *http.Request) {
    hostname, _ := os.Hostname()

    fmt.Fprintf(w, "<html>")
    fmt.Fprintf(w, "<head>")
    fmt.Fprintf(w, "<title>%s</title>", "Go")
    fmt.Fprintf(w, "</head>")
    fmt.Fprintf(w, "<body>")
    fmt.Fprintf(w, "<h1>System info: Hostname [pod name]: %s", hostname)
    fmt.Fprintf(w, "<h1>Current URL: %s", r.Host)
    fmt.Fprintf(w, "</body>")
    fmt.Fprintf(w, "</html>")
}

func main() {
    http.HandleFunc("/favicon.ico", favicon)
    http.HandleFunc("/", sayhelloName)

    log.Fatal(http.ListenAndServe(":8080", nil))
}