2017-07-12 4 views
0

Ich habe einige HTML-Dateien in Ordner/html (zum Beispiel main.html, page1.html, page2.html, etc). Und ich es dienen, neben Go CodeGolang Serving HTML-Dateien

r := mux.NewRouter() 
r.PathPrefix("/").Handler(http.StripPrefix("/", http.FileServer(http.Dir(htmlDir)))) 

Also, wenn ich Adresse öffnen http://127.0.0.1/page1.html, dann wird page1.html gezeigt werden (es ist das, was ich brauche). Aber ich möchte auch die Adresse http://127.0.0.1/ an main.html binden. Wie kann ich es tun?

Ich kann main.html in index.html umbenennen, aber ich denke, es ist nicht wahr.

Antwort

1

könnten Sie fügen zusätzlich eine HandlerFunc dass zu handhaben:

r := mux.NewRouter() 
r.HandleFunc("/", homeHandler) 
r.PathPrefix("/").Handler(http.StripPrefix("/", http.FileServer(http.Dir(htmlDir)))) 

Im homeHandler Sie die Datei, die Sie dienen wollen dienen:

func homeHandler(w http.ResponseWriter, r *http.Request) { 
    http.ServeFile(w, r, fmt.Sprintf("./%s/index.htm", htmlDir)) 
} 

Es könnte andere Optionen ...

+0

Ja, ich kann. Aber es scheint kein einfacher Weg zu sein. Ich dachte, das kann ein einfacher Weg sein, um so einfach zu machen. – Ragnar