Heim >Backend-Entwicklung >Golang >Wie entferne ich die Erweiterung .html aus Dateinamen auf einem Go-HTTP-Server?

Wie entferne ich die Erweiterung .html aus Dateinamen auf einem Go-HTTP-Server?

Linda Hamilton
Linda HamiltonOriginal
2024-10-29 13:59:02403Durchsuche

How to Strip the .html Extension from File Names in a Go HTTP Server?

So entfernen Sie die Erweiterung .html aus Dateien auf einem HTTP-Server

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!

Stellungnahme:
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