Lors du développement de serveurs Web, il est souvent souhaitable de supprimer l'extension .html des noms de fichiers pour fournir une expérience URL plus propre et plus conviviale.
Dans un serveur HTTP Go, cela peut être réalisé en implémentant l'interface http.FileSystem et en l'enregistrant en tant que gestionnaire personnalisé. Le code suivant montre comment procéder :
<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>
Ce système de fichiers personnalisé, HTMLDir, remplace la méthode Open pour rechercher des fichiers avec et sans l'extension .html. Lorsqu'une demande de fichier est effectuée, le serveur essaiera d'abord d'ouvrir le fichier avec l'extension .html. S'il n'est pas trouvé, il tentera alors d'ouvrir le fichier sans l'extension.
En implémentant le système de fichiers personnalisé et en l'enregistrant en tant que gestionnaire, vous pouvez supprimer efficacement l'extension .html des noms de fichiers tout en fournissant l'accès. au contenu souhaité.
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!