Maison > Article > développement back-end > Comment analyser un modèle embed.FS à l'aide de la fonction template.ParseFS
L'éditeur PHP Xiaoxin vous propose un guide sur la façon d'utiliser la fonction template.ParseFS pour analyser le modèle embed.FS. Lors du développement de projets à l'aide du langage Go, nous utilisons souvent le package embed pour intégrer des fichiers statiques, et la fonction template.ParseFS peut nous aider à analyser ces fichiers modèles intégrés. Cet article présentera en détail comment utiliser la fonction template.ParseFS pour vous aider à traiter les fichiers modèles de manière plus flexible pendant le processus de développement et à améliorer l'efficacité du développement du projet. Nous allons jeter un coup d'oeil!
Je souhaite analyser tous les modèles dans la même template.Template
structure mais je ne sais pas comment et cela me donne également une erreur. J'ai le code suivant :
package main import ( "embed" "html/template" "log" "os" ) //go:embed internal/web/views/* var viewsFS embed.FS func main() { tmpls, err := template.New("").ParseFS(viewsFS, "**/*.html") if err != nil { log.Fatal(err) // Debugging I finded out that the error is here so the code below is irrelevant } tmpls.ExecuteTemplate(os.Stdout, "pages/home", nil) }
Donnez-moi la ParseFS
erreur de méthode suivante :
$ 2023/09/16 23:36:42 template: pattern matches no files: `**/*.html`
Je pense que l'erreur est dans le paramètre patterns
de la méthode ParseFS
方法的 patterns
, je ne sais pas.
Je suis dans internal/web/views
目录中有很多 html 文件,实际上该文件夹中的所有文件都是 html 文件,每个文件都有一个或多个 {{define}}
type de modèle. p>
Toute aide serait grandement appréciée, merci
@Charlie-Tumahai attribue cette documentation (site officiel de Go Package) à lui Modèles globaux dans Go
Donc, afin d'analyser tous les modèles dans la même template.Template
structure, je dois procéder comme suit :
package main import ( "embed" "html/template" "log" "os" ) //go:embed internal/web/views/* var viewsFS embed.FS func main() { tmpls, err := template.New(""). ParseFS(viewsFS, "internal/web/views/*/*.html", "internal/web/views/*/*/*.html", /* Add more `*` if you have templates that are more nested */ ) if err != nil { log.Fatal(err) } tmpls.ExecuteTemplate(os.Stdout, "pages/home", nil) }
Ce que j'ai fait, c'est d'examiner davantage le modèle Glob et d'apprendre à l'utiliser dans Go, le modèle Glob dans Go est créé différemment de n'importe quelle autre langue.
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!