3
Template.ParseGlob("*.html") //fetches all html files from current directory.
Template.ParseGlob("**/*.html") //Seems to only fetch at one level depth

我不是在寻找“步行”解决方案。只是想知道这是否可能。我不太明白这期望什么“模式”。如果我能得到关于 ParseGlob 使用的模式的解释,那也很棒。

4

2 回答 2

6

代码text/template/helper.go提到_

 // The pattern is processed by filepath.Glob and must match at least one file.

filepath.Glob()表示“模式的语法与中的相同Match

如果 name 与 shell 文件名模式匹配,则 Match 返回 true。

Match()的实现似乎并没有以**不同的方式对待 ' ',只将 ' *' 视为匹配任何非分隔符字符序列。
这意味着' **' 等同于 ' *',这反过来又可以解释为什么匹配只在一个级别的深度上起作用。

于 2014-09-09T13:37:22.510 回答
1

因此,由于ParseGlob无法递归加载模板,我们必须使用path/filepath.Walk函数。但这种方式提供了更多的机会。

https://gist.github.com/logrusorgru/abd846adb521a6fb39c7405f32fec0cf

于 2018-08-04T04:05:42.633 回答