Heim >Backend-Entwicklung >Golang >Wie verstecke ich HTML-Dateierweiterungen vor URLs in einem Go-HTTP-Server?
So verbergen Sie Dateierweiterungen in einem einfachen HTTP-Server
Viele Webserver zeigen Dateierweiterungen in der URL an, was aus ästhetischen Gründen unerwünscht sein kann oder aus Gründen der Benutzererfahrung. Diese Anleitung zeigt, wie Sie die Erweiterung .html vor URLs in einem Go-HTTP-Server verbergen.
Lösung
Die Implementierung von http.FileSystem mit http.Dir bietet mehrere Vorteile, darunter Nutzung des robusten Codes in http.FileServer. Zur Implementierung dieser Funktionalität kann eine benutzerdefinierte HTMLDir-Struktur erstellt werden.
Implementierung
Die Implementierung von Open hängt vom gewünschten Verhalten ab. Nachfolgend werden drei Szenarien dargestellt:
Option 1: Immer .html anhängen
<code class="go">func (d HTMLDir) Open(name string) (http.File, error) { return d.d.Open(name + ".html") }</code>
Option 2: Fallback auf .html
<code class="go">func (d HTMLDir) Open(name string) (http.File, error) { f, err := d.d.Open(name) if os.IsNotExist(err) { if f, err := d.d.Open(name + ".html"); err == nil { return f, nil } } return f, err }</code>
Option 3: Beginnen Sie mit .html und Fallback
<code class="go">func (d HTMLDir) Open(name string) (http.File, error) { f, err := d.d.Open(name + ".html") if os.IsNotExist(err) { if f, err := d.d.Open(name); err == nil { return f, nil } } return f, err }</code>
Durch die Verwendung von HTMLDir mit http.StripPrefix kann die Erweiterung .html beim Bereitstellen von Dateien effektiv verborgen werden das angegebene Verzeichnis. Diese Technik sorgt für ein nahtloseres und ästhetisch ansprechenderes Benutzererlebnis und ermöglicht gleichzeitig den Zugriff auf die beabsichtigten Inhalte.
Das obige ist der detaillierte Inhalt vonWie verstecke ich HTML-Dateierweiterungen vor URLs in einem Go-HTTP-Server?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!