Maison >développement back-end >Golang >Pourquoi est-ce que je reçois une erreur 404 lors de la diffusion de fichiers CSS dans mon application Web Go ?

Pourquoi est-ce que je reçois une erreur 404 lors de la diffusion de fichiers CSS dans mon application Web Go ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-23 20:05:21317parcourir

Why Am I Getting a 404 Error When Serving CSS Files in My Go Web Application?

Problème : 404 page introuvable lors du rendu CSS dans Go

Lorsqu'ils tentent d'utiliser des fichiers CSS dans une application Web Go, les utilisateurs peuvent rencontrer une erreur 404, indiquant que le fichier CSS est introuvable. Ce problème survient malgré le respect des instructions de la documentation fournie.

Structure et code du répertoire pertinents :

La structure du répertoire pertinent est la suivante :

src/
  |__ css/somefilename.css
  |__ server/server.go

Le code dans server.go inclut :

http.Handle("/css/", http.StripPrefix("/css/", http.FileServer(http.Dir("css"))))

Dans le modèle HTML src/templates/layout.html, le fichier CSS est référencé comme :

<link rel="stylesheet" type="text/css" href="../css/css490.css" />

Source du problème et de la résolution :

L'erreur se produit car le chemin fourni vers le répertoire FileServer n'est pas un chemin absolu. Les chemins relatifs dans Go sont résolus vers le répertoire de travail à partir duquel l'application est exécutée.

Pour résoudre le problème, les utilisateurs peuvent s'assurer que l'application est exécutée à partir du répertoire de travail correct, généralement spécifié dans l'argument de ligne de commande lorsque exécuter le programme. Alternativement, le chemin absolu vers le répertoire CSS peut être explicitement fourni dans la fonction FileServer.

Par exemple, si le répertoire de travail est src, alors exécuter go run server/server.go résoudra le chemin correctement et le Le fichier CSS sera accessible sur localhost:8080/css/. Cependant, exécuter go run server.go à partir du dossier src/server entraînera une erreur 404. Pour résoudre ce problème dans le 后者, les utilisateurs peuvent modifier le code pour utiliser le chemin absolu :

http.Handle("/css/", http.StripPrefix("/css/", http.FileServer(http.Dir("/src/css"))))

En spécifiant le chemin complet du répertoire CSS, le programme peut localiser le fichier CSS quel que soit le répertoire de travail. à partir duquel il est exécuté.

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!

Déclaration:
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