Bei der Entwicklung von Webservern ist es häufig wünschenswert, die Erweiterung .html aus den bereitzustellenden Dateinamen zu entfernen ein saubereres und benutzerfreundlicheres URL-Erlebnis.
In einem Go-HTTP-Server kann dies erreicht werden, indem die http.FileSystem-Schnittstelle implementiert und als benutzerdefinierter Handler registriert wird. Der folgende Code zeigt, wie das geht:
<code class="go">package main import ( "net/http" "os" ) type HTMLDir struct { d http.Dir } func main() { fs := http.FileServer(HTMLDir{http.Dir("public/")}) http.Handle("/", http.StripPrefix("/", fs)) http.ListenAndServe(":8000", nil) } func (d HTMLDir) Open(name string) (http.File, error) { f, err := d.d.Open(name + ".html") if os.IsNotExist(err) { // Not found, try with .html if f, err := d.d.Open(name); err == nil { return f, nil } } return f, err }</code>
Dieses benutzerdefinierte Dateisystem, HTMLDir, überschreibt die Open-Methode, um nach Dateien mit und ohne die Erweiterung .html zu suchen. Wenn eine Dateianforderung gestellt wird, versucht der Server zunächst, die Datei mit der Erweiterung .html zu öffnen. Wenn es nicht gefunden wird, wird versucht, die Datei ohne die Erweiterung zu öffnen.
Durch die Implementierung des benutzerdefinierten Dateisystems und die Registrierung als Handler können Sie die Erweiterung .html effektiv aus Dateinamen entfernen und gleichzeitig Zugriff gewähren auf den gewünschten Inhalt.
Das obige ist der detaillierte Inhalt vonWie entferne ich die Erweiterung .html aus Dateinamen auf einem Go-HTTP-Server?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!