


Wie entferne ich die .html-Erweiterung von URLs in einem Go-HTTP-Server?
Oct 28, 2024 am 08:34 AM.html-Erweiterung aus Dateien auf einem HTTP-Server entfernen
Viele HTTP-Server fügen am Ende von URLs automatisch eine „.html“-Erweiterung hinzu , was in manchen Fällen unerwünscht sein kann. Um dieses Verhalten in einem Go-HTTP-Server zu ändern, können Sie mithilfe von http.Dir ein benutzerdefiniertes http.FileSystem implementieren. So geht's:
- Erstellen Sie ein benutzerdefiniertes Dateisystem:
<code class="go">type HTMLDir struct { d http.Dir }</code>
- Implementieren Sie die Open-Methode:
Die Open-Methode bestimmt, wie Dateien geöffnet werden sollen. Abhängig von Ihren Anforderungen haben Sie mehrere Möglichkeiten:
Erweiterung „.html“ immer anhängen:
<code class="go">func (d HTMLDir) Open(name string) (http.File, error) { return d.d.Open(name + ".html") }</code>
Fallback auf die Erweiterung „.html“:
<code class="go">func (d HTMLDir) Open(name string) (http.File, error) { // Try name as supplied f, err := d.d.Open(name) if os.IsNotExist(err) { // Not found, try with .html if f, err := d.d.Open(name + ".html"); err == nil { return f, nil } } return f, err }</code>
Beginnen Sie mit der Erweiterung „.html“ und Fallback:
<code class="go">func (d HTMLDir) Open(name string) (http.File, error) { // Try name with added extension f, err := d.d.Open(name + ".html") if os.IsNotExist(err) { // Not found, try again with name as supplied. if f, err := d.d.Open(name); err == nil { return f, nil } } return f, err }</code>
- Verwenden Sie Ihr benutzerdefiniertes Dateisystem:
<code class="go">fs := http.FileServer(HTMLDir{http.Dir("public/")}) http.Handle("/", http.StripPrefix("/", fs))</code>
Durch die Implementierung von http.FileSystem und die Anpassung der Open-Methode können Sie steuern, wie Dateien von Ihrem HTTP-Server bereitgestellt werden, einschließlich des Verhaltens rund um „.html“-Erweiterungen.
Das obige ist der detaillierte Inhalt vonWie entferne ich die .html-Erweiterung von URLs in einem Go-HTTP-Server?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heißer Artikel

Hot-Tools-Tags

Heißer Artikel

Heiße Artikel -Tags

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

GO Language Pack Import: Was ist der Unterschied zwischen Unterstrich und ohne Unterstrich?

Wie schreibe ich Scheinobjekte und Stubs zum Testen in Go?

Wie kann ich kurzfristige Informationsübertragung zwischen Seiten im BeEGO-Framework implementieren?

Wie kann ich benutzerdefinierte Typ -Einschränkungen für Generika in Go definieren?

Wie kann ich Tracing -Tools verwenden, um den Ausführungsfluss meiner GO -Anwendungen zu verstehen?

Wie kann ich Linter und statische Analyse -Tools verwenden, um die Qualität und Wartbarkeit meines GO -Codes zu verbessern?

Wie schreibe ich Dateien in Go Language bequem?

Wie konvertieren Sie die Liste der MySQL -Abfrageergebnisse in eine benutzerdefinierte Struktur -Slice in Go -Sprache?
