代码之家  ›  专栏  ›  技术社区  ›  Blankman

尝试呈现模板时,获取错误html/template:“templates/index.html”未定义

  •  0
  • Blankman  · 技术社区  · 7 年前

    我有一个简单的main.go脚本,它从文件夹中加载模板。模板如下:

    <html>
    <head>
      <title>T2 template</title>
    </head>
    <body>
     hello
    </body>
    </html>
    

    main.go脚本看起来是:

    package main
    
    import (
    
      "fmt"
      "html/template"
      "log"
      "net/http"
      "os"
    
      "github.com/gorilla/mux"
    )
    
    var (
      templates = template.Must(template.ParseFiles("templates/index.html"))
    )
    
    func main() {
    
      port := os.Getenv("PORT")
    
      fmt.Printf("port is: %v\n", port)
    
      r := mux.NewRouter()
    
      r.HandleFunc("/hello", HomeHandler)
    
      log.Fatal(http.ListenAndServe(":"+port, r))
    }
    
    func HomeHandler(w http.ResponseWriter, r *http.Request) {
      tmpl := "templates/index.html"
    
      err := templates.ExecuteTemplate(w, tmpl, "")
      if err != nil {
        http.Error(w, err.Error(), http.StatusInternalServerError)
      }
    }
    

    我不知道这里出了什么问题。

    我在浏览器中看到的错误是:

    “templates/index.html”未定义

    1 回复  |  直到 7 年前
        1
  •  2
  •   Cerise Limón    7 年前

    ParseFiles

    base name

    tmpl := "index.html"
    err := templates.ExecuteTemplate(w, tmpl, "")