Diese Aufgabe ist mit dem Golang net / http-Paket sehr einfach.
Alles was Sie tun müssen ist:
package main
import (
"net/http"
)
func main() {
http.Handle("/", http.FileServer(http.Dir("./static")))
http.ListenAndServe(":3000", nil)
}
Angenommen, statische Dateien befinden sich in einem Ordner staticim Stammverzeichnis des Projekts.
Wenn es sich im Ordner befindet static, wird eine index.htmlDatei http://localhost:3000/aufgerufen , die dazu führt, dass diese Indexdatei gerendert wird, anstatt alle verfügbaren Dateien aufzulisten.
Wenn Sie beispielsweise eine andere Datei in diesem Ordner aufrufen (z. B. http://localhost:3000/clients.html), wird diese Datei angezeigt, die vom Browser ordnungsgemäß gerendert wurde (mindestens Chrome, Firefox und Safari :)).
UPDATE: Serving von Dateien mit einer anderen URL als "/"
Wenn Sie Dateien ./publicbereitstellen möchten, sagen Sie aus dem Ordner unter URL: localhost:3000/staticSie müssen zusätzliche Funktionen verwenden : func StripPrefix(prefix string, h Handler) Handlerwie folgt:
package main
import (
"net/http"
)
func main() {
http.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("./public"))))
http.ListenAndServe(":3000", nil)
}
Dank dessen sind alle Ihre Dateien ./publicunter verfügbarlocalhost:3000/static
http.StripPrefixWenn Sie ohne Funktion versuchen würden, auf eine Datei zuzugreifen localhost:3000/static/test.html, würde der Server danach suchen./public/static/test.html
Dies liegt daran, dass der Server den gesamten URI als relativen Pfad zur Datei behandelt.
Glücklicherweise ist es mit der eingebauten Funktion leicht zu lösen.
/static/nicht/static?