Ich versuche einen HTTP-Server in Go zu starten, der meine eigenen Daten mit meinen eigenen Handlern bedient, aber gleichzeitig möchte ich den Standard-HTTP-FileServer verwenden, um Dateien zu liefern.FileServer-Handler mit einigen anderen HTTP-Handlern
Ich habe Probleme, den Handler des FileServer in einem URL-Unterverzeichnis arbeiten zu lassen.
Dieser Code funktioniert nicht:
package main
import (
"fmt"
"log"
"net/http"
)
func main() {
http.Handle("/files/", http.FileServer(http.Dir(".")))
http.HandleFunc("/hello", myhandler)
err := http.ListenAndServe(":1234", nil)
if err != nil {
log.Fatal("Error listening: ", err)
}
}
func myhandler(w http.ResponseWriter, req *http.Request) {
fmt.Fprintln(w, "Hello!")
}
ich das lokale Verzeichnis in localhost zu finden erwartete: 1234/files/aber es gibt einen 404 page not found
.
Allerdings, wenn ich die Handler-Adresse des File-Servers zu/ändern, es funktioniert:
/* ... */
http.Handle("/", http.FileServer(http.Dir(".")))
Aber jetzt meine Dateien sind zugänglich und sichtbar im Stammverzeichnis.
Wie kann ich es machen, um Dateien von einer anderen URL als root zu liefern?
Oh, es ist nur Beispiel unter dem Fileserver wurde, ich fühle mich so dumm ... Danke! – siritinga