猿问

动态解析文件

为了解析文件,我为template.ParseFiles设置了一个变量,而我目前必须手动设置每个文件。


两件事情:


我将如何遍历主文件夹和多个子文件夹并将其自动添加到ParseFiles,这样我就不必单独手动添加每个文件了?


如何在子文件夹中调用具有相同名称的文件,因为如果我在ParseFiles中添加相同名称的文件,当前在运行时会出现错误。


var templates = template.Must(template.ParseFiles(

    "index.html", // main file

    "subfolder/index.html" // subfolder with same filename errors on runtime

    "includes/header.html", "includes/footer.html",

))



func main() {

    // Walk and ParseFiles

    filepath.Walk("files", func(path string, info os.FileInfo, err error) {

        if !info.IsDir() {

            // Add path to ParseFiles



        }

        return

    })


    http.HandleFunc("/", home)

    http.ListenAndServe(":8080", nil)

}


func home(w http.ResponseWriter, r *http.Request) {

    render(w, "index.html")

}


func render(w http.ResponseWriter, tmpl string) {

    err := templates.ExecuteTemplate(w, tmpl, nil)

    if err != nil {

        http.Error(w, err.Error(), http.StatusInternalServerError)

    }

}


摇曳的蔷薇
浏览 173回答 2
2回答
随时随地看视频慕课网APP

相关分类

Go
我要回答