Utilizzo il pacchetto "html/template" di golang per pubblicare contenuti su più pagine utilizzando lo stesso _base.html come framework. Unisco più file html (_base.html e il file di contenuto) per fungere da singolo.Modello Golang che serve css su diversi livelli di directory
func main() {
http.HandleFunc("/", indexHandler)
http.HandleFunc("/blog/", blogHandler)
http.Handle("/css/", http.StripPrefix("/css/", http.FileServer(http.Dir("http/css"))))
http.ListenAndServe(":1337", nil)
}
func indexHandler(w http.ResponseWriter, r *http.Request) {
index := template.Must(template.ParseFiles(
"http/html/_base.html",
"http/html/index.html",
))
index.Execute(w, nil)
}
func blogHandler(w http.ResponseWriter, r *http.Request) {
blog := template.Must(template.ParseFiles(
"http/html/_base.html",
"http/html/blog.html",
))
blog.Execute(w, nil)
}
questo modo sulla radice del mio webserver mia css rende bene, perché il collegamento tag HTML al mio css in punti _base.html alla directory giusta utilizzando:
<link href="css/style.css" rel="stylesheet">
tuttavia quando Navigando da/a/blog/il mio css è andato a un livello basso (o ho raggiunto un livello superiore, comunque ti piacerebbe vederlo) e così il css href punta improvvisamente a /blog/css/style.css e quindi non renderà.
Questo può essere facilmente risolto indicando il livello del css in ogni file di contenuto unisco con _base.html, tuttavia sento che ci deve essere un altro, più pulito, modo diverso. C'è o il mio istinto giudica male in questo caso?
Dannazione, sono un tale n00b, e tu sei molto utile signore. Avrei dovuto saperlo, ma ho dimenticato. Grazie mille – Dani