Как добавить заголовок основного текста в вывод Fprintf?

#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, "nnSystem info:nHostname [pod name]: %s", hostname)
    fmt.Fprintf(w, "nCurrent URL: %sn", r.Host)
}

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

Я пытался добавить, как:
fmt.Fprintf(w, "<title>Go</title>") . Это работает, но создает путаницу со строками рядом. Я бы не хотел использовать html-шаблон только для добавления заголовка на страницу. Есть ли какие-либо способы добавить заголовок в одной строке?

Комментарии:

1. Прочитайте документацию к fmt пакету, который вы используете. Fprintf предназначено для строк формата . Вы не используете никаких директив форматирования для печати заголовка. Вы можете просто использовать Fprint .

Ответ №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))
}