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, "")
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)