douyin4875 2018-07-20 02:08
浏览 981
已采纳

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

I have a simple main.go script that loads a template from a folder. The template looks like:

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

The main.go script looks is:

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
", 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)
  }
}

I'm not sure what is wrong here.

The error I see in the browser is:

"templates/index.html" is undefined

  • 写回答

1条回答 默认 最新

  • duanjianl183188 2018-07-20 02:10
    关注

    The ParseFiles doc says:

    The returned template's name will have the (base) name and (parsed) contents of the first file.

    To execute the template, use the base name of "templates/index.html":

    tmpl := "index.html"
    err := templates.ExecuteTemplate(w, tmpl, "")
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥30 motoradmin系统的多对多配置
  • ¥15 求组态王串口自定义通信配置方法或代码?
  • ¥15 实验 :UML2.0 结构建模
  • ¥20 用vivado写数字逻辑实验报告撰写,FPGA实验
  • ¥15 为什么shp文件会有这种小方块?
  • ¥15 ecplise在连接数据库时显示加载驱动成功但是数据库连接失败
  • ¥15 visionmaster启动失败,提示为“机器不满足授权而被禁用”
  • ¥15 IDEA中圈复杂度如何具体设置
  • ¥50 labview采集不了数据
  • ¥15 Multisim红外倒车雷达仿真中距离问题