问题
Template.ParseGlob("*.html") //fetches all html files from current directory.
Template.ParseGlob("**/*.html") //Seems to only fetch at one level depth
Im not looking for a "Walk" solution. Just want to know if this is possible. I don't quite understand what "pattern" this expects. if i can get an explanation about the pattern used by ParseGlob that would be great too.
回答1:
The code text/template/helper.go mentions
// The pattern is processed by filepath.Glob and must match at least one file.
filepath.Glob() says that "the syntax of patterns is the same as in Match"
Match returns true if name matches the shell file name pattern.
The implementation of Match() doesn't seem to treat '**
' differently, and only consider '*
' as matching any sequence of non-Separator characters.
That would mean '**
' is equivalent to '*
', which in turn would explain why the match works at one level depth only.
回答2:
So, since the ParseGlob can't load templates recursively we have to use path/filepath.Walk function. But this way gives more opportunities.
https://gist.github.com/logrusorgru/abd846adb521a6fb39c7405f32fec0cf
来源:https://stackoverflow.com/questions/25745701/parseglob-what-is-the-pattern-to-parse-all-templates-recursively-within-a-direc