Dans Go, vous pouvez diffuser à la fois du contenu statique et une page d'accueil à partir du répertoire racine. Cependant, des conflits surviennent lorsque les deux méthodes sont enregistrées pour l'URL racine.
Pour diffuser du contenu statique, tel que des images et du CSS, vous devez utiliser http.Handle et fournir un http.Dir. Cependant, si vous faites cela pour l'URL racine, cela entrera en conflit avec le gestionnaire de page d'accueil.
Pour servir une page d'accueil, utilisez http.HandleFunc et fournissez une fonction de gestionnaire qui écrit le contenu de la page d'accueil.
Pour résoudre le conflit, envisagez de servir une racine spécifique fichiers explicitement. Par exemple, vous pouvez diffuser sitemap.xml, favicon.ico et robots.txt en tant que fichiers individuels.
package main import ( "fmt" "net/http" ) func HomeHandler(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "HomeHandler") } func serveSingle(pattern string, filename string) { http.HandleFunc(pattern, func(w http.ResponseWriter, r *http.Request) { http.ServeFile(w, r, filename) }) } func main() { http.HandleFunc("/", HomeHandler) // homepage // Mandatory root-based resources serveSingle("/sitemap.xml", "./sitemap.xml") serveSingle("/favicon.ico", "./favicon.ico") serveSingle("/robots.txt", "./robots.txt") // Normal resources http.Handle("/static", http.FileServer(http.Dir("./static/"))) http.ListenAndServe(":8080", nil) }
Déplacer toutes les autres ressources statiques (par exemple, CSS, JS) dans un sous-répertoire tel que /static. Ensuite, servez ce sous-répertoire normalement en utilisant http.Handle et http.Dir.
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!