我得到了layout.tmpl
:
<html xmlns="http://www.w3.org/1999/xhtml">
<head></head>
<body>
<div id='left'>
{{template "left" .}}
</div>
<div id='right'>
{{template "right" .}}
</div>
</body>
</html>
和mainPage.tmpl
:
{{define "left"}}
left content
{{end}}
{{define "right"}}
right content
{{end}}
和someOtherPage.tmpl
:
{{define "left"}}
left content 2
{{end}}
{{define "right"}}
right content 2
{{end}}
和martini
go
使用该模板的网络应用程序martiniWebApp.go
:
package main
import (
"github.com/go-martini/martini"
"github.com/martini-contrib/render"
)
func main() {
m := martini.Classic()
m.Use(render.Renderer(render.Options{
Layout: "layout",
}))
m.Get("/", func(r render.Render) {
r.HTML(200, "mainPage", nil)
})
m.Get("/somePage", func(r render.Render) {
r.HTML(200, "someOtherPage", nil)
})
m.Run()
}
当我运行我的应用程序时go run martiniWebApp.go
出现错误:
panic: template: redefinition of template "left"
如果我从网络应用程序中删除文件someOtherPage.tmpl
和路由/somePage
,那么错误就会消失。但是如何组织布局块构造以重用通用布局 html 并在每个特定页面上只定义几个块?