Я получил 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 и определить только несколько блоков на каждой конкретной странице?