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

杜松子酒模板覆盖部分模板

杜松子酒模板覆盖部分模板

Go
慕工程0101907 2022-08-15 19:43:44
我正在使用杜松子酒和它的功能。一个,如果它们是html模板渲染。因此,本着DRY的精神,我想创建一个包含所有常见html标签等的模板,并为不同的页面主体提供一个插槽。base.html从本质上讲,这是base.html{{define "base"}}<!DOCTYPE html><html><head>    <meta charset="UTF-8">    <meta name="viewport" content="width=device-width, initial-scale=1"></head><body>{{ template "main" . }}</body></html>{{end}}然后我创建了一个名为”home.html{{template "base" .}}{{define "main"}}    <div class="container mt-5">        Hello    </div>{{end}}我在这个页面上遵循了这个精彩的指南,它就像一个魅力。问题但是当我尝试添加另一个具有不同正文的页面时,例如:subpage.html{{template "base" .}}{{define "main"}}<div class="container">    <div>        <h2>This page is still in progress</h2>    </div></div>{{end}}然后,由 gins 或 选择的最后一个模板将显示在每个页面上。在这种情况下,这是内容。我该如何解决这个问题。默认情况下是否有可能实现此行为?LoadHTMLFilesLoadHTMLGlobsubpage.html
查看完整描述

1 回答

?
慕仙森

TA贡献1827条经验 获得超8个赞

你可以做这样的事情:


base.html


{{ define "top" }}

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1">

</head>

<body>

{{ end }}


{{ define "bottom" }}

</body>

</html>

{{ end }}

home.html


{{ template "top" . }}


<div class="container mt-5">

    Hello

</div>


{{ template "bottom" . }}

subpage.html


{{ template "top" . }}


<div class="container">

    <div>

        <h2>This page is still in progress</h2>

    </div>

</div>


{{ template "bottom" . }}

然后,确保您使用的是文件的基本名称:


// in the home handler use the following

c.HTML(http.StatusOK, "home.html", data)


// in the subpage handler use the following

c.HTML(http.StatusOK, "subpage.html", data)


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

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号