#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))
}