html / template中ParseFiles函数的不同行为

我不明白为什么的行为与func (t *Template) Parsefiles(...有所不同func ParseFiles(...。这两个功能均来自“ html / template”包。


package example


import (

    "html/template"

    "io/ioutil"

    "testing"

)


func MakeTemplate1(path string) *template.Template {

    return template.Must(template.ParseFiles(path))

}


func MakeTemplate2(path string) *template.Template {

    return template.Must(template.New("test").ParseFiles(path))

}


func TestExecute1(t *testing.T) {

    tmpl := MakeTemplate1("template.html")


    err := tmpl.Execute(ioutil.Discard, "content")

    if err != nil {

        t.Error(err)

    }

}


func TestExecute2(t *testing.T) {

    tmpl := MakeTemplate2("template.html")


    err := tmpl.Execute(ioutil.Discard, "content")

    if err != nil {

        t.Error(err)

    }

}

退出并显示错误:


--- FAIL: TestExecute2 (0.00 seconds)

    parse_test.go:34: html/template:test: "test" is an incomplete or empty template

FAIL

exit status 1

请注意,此方法TestExecute1通过得很好,所以这不是问题template.html。


这里发生了什么?

我想念MakeTemplate2什么?


繁星coding
浏览 352回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go