Maison >développement back-end >Golang >Comment masquer les extensions de fichiers HTML des URL dans un serveur HTTP Go ?
Comment masquer les extensions de fichiers dans un simple serveur HTTP
De nombreux serveurs Web affichent des extensions de fichiers dans l'URL, ce qui peut être indésirable pour l'esthétique ou des raisons liées à l'expérience utilisateur. Ce guide montre comment masquer l'extension .html des URL dans un serveur HTTP Go.
Solution
Implémenter http.FileSystem à l'aide de http.Dir offre plusieurs avantages, notamment en tirant parti du code robuste de http.FileServer. Une structure HTMLDir personnalisée peut être créée pour implémenter cette fonctionnalité.
Implémentation
L'implémentation d'Open dépend du comportement souhaité. Trois scénarios sont présentés ci-dessous :
Option 1 : Toujours ajouter .html
<code class="go">func (d HTMLDir) Open(name string) (http.File, error) { return d.d.Open(name + ".html") }</code>
Option 2 : Revenir à .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 : Commencez par .html et 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>
En utilisant HTMLDir avec http.StripPrefix, l'extension .html peut être efficacement masquée lors de la diffusion de fichiers à partir de le répertoire spécifié. Cette technique offre une expérience utilisateur plus fluide et plus esthétique, tout en permettant l'accès au contenu prévu.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!