Heim > Backend-Entwicklung > Golang > Wie stelle ich in Go eine Homepage und statische Dateien aus dem Stammverzeichnis bereit?

Wie stelle ich in Go eine Homepage und statische Dateien aus dem Stammverzeichnis bereit?

Susan Sarandon
Freigeben: 2024-12-26 16:03:11
Original
665 Leute haben es durchsucht

How to Serve a Homepage and Static Files from the Root Directory in Go?

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)
    })
}
Nach dem Login kopieren

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")
Nach dem Login kopieren

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/")))
Nach dem Login kopieren

Homepage-Handler registrieren

Registrieren der Root-Handler, wie z. B. HomeHandler, um Anfragen für die Homepage unter „/“ zu verarbeiten:

http.HandleFunc("/", HomeHandler)
Nach dem Login kopieren

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)
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage