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

尝试呈现模板,但出现错误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 Stata链式中介效应代码修改
  • ¥15 latex投稿显示click download
  • ¥15 请问读取环境变量文件失败是什么原因?
  • ¥15 在若依框架下实现人脸识别
  • ¥15 网络科学导论,网络控制
  • ¥100 安卓tv程序连接SQLSERVER2008问题
  • ¥15 利用Sentinel-2和Landsat8做一个水库的长时序NDVI的对比,为什么Snetinel-2计算的结果最小值特别小,而Lansat8就很平均
  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错