在 Go 中动态调用 template.ParseFiles() 而不是传入 x 个字符串的最佳方法是什么?

What is the best way to call template.ParseFiles() dynamically in Go instead of passing in x number of strings?

我想在 Go 中加载 HTML 个模板的文件夹,现在我只能将每个文件路径作为参数中的字符串传递。

示例:

templates = template.Must(template.ParseFiles("../web/html_templates/edit.html","../web/html_mplates/view.html"))

工作正常。

这个和类似的解决方案将不起作用:

templates = template.Must(template.ParseFiles("../web/html_templates/*"))

我想在配置文件中指定我的模板,但我目前不能。解决此问题的最佳方法是什么?

使用 ParseGlob 在一次 API 调用中解析包含 HTML 个模板的文件夹。

templates = template.Must(template.ParseGlob("../web/html_templates/*.html"))

有关 glob 语法,请参阅 Match 函数文档。

你可以使用 template.ParseFiles is a variadic function :

var templatesFiles []string
// [...]
// Here fill the slice from your config file or any other source
// [...]
templates = template.Must(template.ParseFiles(templatesFiles...))