为了账号安全,请及时绑定邮箱和手机立即绑定

模板继承在go中创建空白页面

模板继承在go中创建空白页面

Go
拉风的咖菲猫 2022-11-08 16:59:48
我正在尝试创建一个完整的堆栈应用程序,但我在模板部分遇到了问题。只要页面是静态的,以下代码就可以了,但是当我开始使用继承函数(例如 {{template}}、{{define}} 或 {{block}})时会返回一个空白页面。main.go :package mainimport (    "fmt"    "html/template"    "log"    "net/http"    "github.com/gorilla/mux")func main() {    router := mux.NewRouter()    router.HandleFunc("/", func(rw http.ResponseWriter, r *http.Request) {        fmt.Println("begin")        files := []string{            "layout.html",            "index.html",        }        tmpl, err := template.ParseFiles(files...)        if err != nil {            http.Error(rw, fmt.Sprintf("failed parsing template files | %s", err.Error()), http.StatusInternalServerError)            return        }        if err := tmpl.Execute(rw, nil); err != nil {            http.Error(rw, fmt.Sprintf("failed rendering template | %s", err.Error()), http.StatusInternalServerError)            return        }    }).Methods("GET")    if err := http.ListenAndServe(fmt.Sprintf(":3000"), router); err != nil {        log.Fatalf("failed starting server | %s", err.Error())    }}布局.html{{define "base"}}<!DOCTYPE html><html>    <head>        <meta charset="UTF-8">        <meta http-equiv="X-UA-Compatible" content="IE=edge">        <meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">        <!-- bootstrap CSS -->        <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">        <title></title>    </head>    <body>        <main>            {{template "main" .}}        </main>索引.html{{template "base" .}}{{ define "main" }}    <h2>hello</h2>    <p>test</p>{{ end }}我已经从字面上复制了这些示例,但它仍然不起作用。我错过了什么?
查看完整描述

1 回答

?
慕桂英546537

TA贡献1848条经验 获得超10个赞

ParseFiles返回参数列表中第一个文件的模板。文件的模板是 {{define}}/{{end}} 块之外的内容。


列表中的第一个文件 layout.html 在 {{define}}/{{end}} 块之外只有空格。


您需要文件 index.html 中的模板。交换文件的顺序以解决问题。


    files := []string{

        "index.html",

        "layout.html",

    }


查看完整回答
反对 回复 2022-11-08
  • 1 回答
  • 0 关注
  • 93 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信