dtfpznrbn503027700 2015-08-31 11:07
浏览 204
已采纳

template.ParseGlob()可以解析子目录中的模板吗?

To clean up the template folder I would like to save common templates inside a subfolder. Currently I've the following file structure:

main.go
templates/index.tpl            # Main template for the main page
templates/includes/head.tpl
templates/includes/footer.tpl

head.tpl and footer.tpl will be called within index.tpl, which looks like this:

{{ template "head" . }}
    <h1>My content</h1>
{{ template "footer" .}}

Furthermore the files are parsed using template.ParseGlob(). Here's an excerpt from main.go:

var views = template.Must(template.ParseGlob("src/templates/**/*"))

func Render(rw http.ResponseWriter, temp string, data interface{}) {
    err := views.ExecuteTemplate(rw, temp, data)

    if err != nil {
        http.Error(rw, err.Error(), http.StatusInternalServerError)
    }
}

func Index(rw http.ResponseWriter, req *http.Request) {
    Render(rw, "index.tpl", nil)
}

Everytime I open my browser I get this error message: html/template: "index.tpl" is undefined.

Is it possible, that index.tpl is ignored with this glob pattern? I found this similar question, but the answers present only a work around.

  • 写回答

1条回答 默认 最新

  • dongtuo8170 2015-08-31 11:44
    关注

    No it cannot.

    The documentation is pretty clear here: Globbing for template.ParseGlob works like in filepath.Glob and filepath.Glob uses the syntax of filepath.Match (https://godoc.org/path/filepath#Match) which has no ** for a deep match.

    (It really helps to read the documentation carefully.)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 使用C#,asp.net读取Excel文件并保存到Oracle数据库
  • ¥15 C# datagridview 单元格显示进度及值
  • ¥15 thinkphp6配合social login单点登录问题
  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配