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

尝试呈现模板,但出现错误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, "")
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 cplex运行后参数报错是为什么
  • ¥15 之前不小心删了pycharm的文件,后面重新安装之后软件打不开了
  • ¥15 vue3获取动态宽度,刷新后动态宽度值为0
  • ¥15 升腾威讯云桌面V2.0.0摄像头问题
  • ¥15 关于Python的会计设计
  • ¥15 聚类分析 设计k-均值算法分类器,对一组二维模式向量进行分类。
  • ¥15 stm32c8t6工程,使用hal库
  • ¥15 找能接spark如图片的,可议价
  • ¥15 关于#单片机#的问题,请各位专家解答!
  • ¥15 博通raid 的写入速度很高也很低