Bereitstellung von Homepage und statischen Inhalten aus dem Stammverzeichnis
In Go können statische Inhalte aus dem Stammverzeichnis bereitgestellt und gleichzeitig ein Root-Handler für die Homepage verwaltet werden Dies kann mit den folgenden Schritten erreicht werden:
Stammverzeichnisdateien verarbeiten Explizit
Erstellen Sie eine Funktion wie „serveSingle“, um einzelne Dateien im Stammverzeichnis bereitzustellen. Dieser Ansatz eignet sich für Dateien wie sitemap.xml, favicon.ico und robots.txt, von denen normalerweise erwartet wird, dass sie im Stammverzeichnis vorhanden sind:
func serveSingle(pattern string, filename string) { http.HandleFunc(pattern, func(w http.ResponseWriter, r *http.Request) { http.ServeFile(w, r, filename) }) }
Dateihandler registrieren
Registrieren Sie die Funktion „serveSingle“, um Anfragen für bestimmte Dateien im Stammverzeichnis zu verarbeiten Verzeichnis:
serveSingle("/sitemap.xml", "./sitemap.xml") serveSingle("/favicon.ico", "./favicon.ico") serveSingle("/robots.txt", "./robots.txt")
Statischen Inhalt aus einem Unterverzeichnis bereitstellen
Verwenden Sie http.FileServer, um statischen Inhalt aus einem Unterverzeichnis bereitzustellen, z. B. „/static/“:
http.Handle("/static", http.FileServer(http.Dir("./static/")))
Homepage-Handler registrieren
Registrieren der Root-Handler, wie z. B. HomeHandler, um Anfragen für die Homepage unter „/“ zu verarbeiten:
http.HandleFunc("/", HomeHandler)
Beispielcode
Die Kombination dieser Techniken führt zu folgendem Code :
package main import ( "fmt" "net/http" ) func HomeHandler(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "HomeHandler") } func serveSingle(pattern string, filename string) { http.HandleFunc(pattern, func(w http.ResponseWriter, r *http.Request) { http.ServeFile(w, r, filename) }) } func main() { http.HandleFunc("/", HomeHandler) // homepage serveSingle("/sitemap.xml", "./sitemap.xml") serveSingle("/favicon.ico", "./favicon.ico") serveSingle("/robots.txt", "./robots.txt") http.Handle("/static", http.FileServer(http.Dir("./static/"))) http.ListenAndServe(":8080", nil) }
Durch die explizite Handhabung von Stammverzeichnisdateien und der Bereitstellung statischer Inhalte aus einem separaten Unterverzeichnis können Sie sowohl die Homepage-Verarbeitung als auch statische Inhalte beibehalten Bereitstellung mit einem ähnlichen Verhalten wie Webserver wie Apache und Nginx.
Das obige ist der detaillierte Inhalt vonWie stelle ich in Go eine Homepage und statische Dateien aus dem Stammverzeichnis bereit?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!