I recently started learning go and I want to develop a simple website. However I can't figure out how to use a external CSS File for this Website.
This is my directory structure:
./
main.go
static/
css/
home.css
templates/
home.html
Here is my main.go file:
package main
import (
"html/template"
"log"
"net/http"
)
func main() {
http.HandleFunc("/", homeHandler)
fs := http.FileServer(http.Dir("static/"))
http.Handle("/static/", http.StripPrefix("/static/", fs))
log.Println("Listening on :8080...")
log.Fatal(http.ListenAndServe(":8080", nil))
}
func homeHandler(w http.ResponseWriter, r *http.Request) {
renderTemplate(w, "home")
}
func renderTemplate(w http.ResponseWriter, tmpl string) {
t, err := template.ParseFiles("templates/" + tmpl + ".html")
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
err = t.Execute(w, nil)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
}
}
And in home.html I added this in my header:
<link rel="stylesheet" href="/css/home.css">
When debugging in the browser it seems that the file is found, but there's an error with the MIME type: Browser Console Screenshot
I thought that this two lines would solve that, but apparently it doesn't:
fs := http.FileServer(http.Dir("static/"))
http.Handle("/static/", http.StripPrefix("/static/", fs))
Does somebody know what I am doing wrong?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…