Maison > développement back-end > Golang > Comment le package « net/http » de Go détermine-t-il la racine du système de fichiers du serveur Web ?

Comment le package « net/http » de Go détermine-t-il la racine du système de fichiers du serveur Web ?

Barbara Streisand
Libérer: 2024-12-23 03:11:16
original
849 Les gens l'ont consulté

How Does Go's `net/http` Package Determine the Webserver's Filesystem Root?

Système de fichiers du serveur Web Go : Comprendre la racine du fichier

Dans le package net/http de Go, la "racine du système de fichiers" du serveur Web est pas directement lié au répertoire de l'exécutable. Au lieu de cela, cela dépend des gestionnaires enregistrés sur le serveur.

Les gestionnaires fournissent la logique de traitement des requêtes HTTP entrantes. Lors de l'enregistrement d'un gestionnaire, les développeurs peuvent spécifier les modèles d'URL qu'il servira. Il n'y a pas d'URL « racine » désignée et les gestionnaires peuvent correspondre à n'importe quel préfixe d'URL.

Si une fonctionnalité de serveur de fichiers statique est requise, le package http fournit une fonction FileServer(). Il prend un répertoire en entrée et renvoie un gestionnaire qui sert les fichiers statiques de ce répertoire.

Lors de l'utilisation de FileServer(), la "racine" des fichiers statiques est spécifiée en tant que paramètre. Si un chemin absolu est fourni, il fait directement référence au dossier spécifié.

Cependant, si un chemin relatif est utilisé, il est interprété par rapport au répertoire actuel ou de travail. Par défaut, il s'agit du dossier à partir duquel l'application est démarrée.

Par exemple, si vous enregistrez un gestionnaire en utilisant :

http.Handle("/", http.FileServer(http.Dir("/tmp")))
Copier après la connexion

Le gestionnaire servira les fichiers statiques à partir du "/tmp ", et l'URL racine "/" sera mappée à ce répertoire.

Pour mapper un répertoire à un chemin d'URL différent, vous pouvez utiliser la fonction StripPrefix(). Par exemple, si vous souhaitez diffuser "/tmp" sous le préfixe d'URL "/tmpfiles", vous pouvez utiliser :

http.Handle("/tmpfiles/", http.StripPrefix("/tmpfiles/", http.FileServer(http.Dir("/tmp"))))
Copier après la connexion

Cela supprimera le préfixe "/tmpfiles" de l'URL de la requête avant qu'il ne soit géré par le FileServer.

Comprendre ces concepts est crucial pour configurer votre application Web et mapper correctement les préfixes d'URL aux fichiers ou fichiers souhaités. gestionnaires.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal