html/template多layout,不能自动渲染的问题!

mia0x75 · · 1043 次点击
<a href="/user/polaris" title="@polaris">@polaris</a> 还是有问题,请看原贴,多谢。
#3
更多评论
polaris
社区,需要你我一同完善!
每个页面负责传递自己对应的 view 部分 html 文件,用于第二个参数吧
#1
t.ExecuteTemplate(w, &#34;single&#34;, nil) 第二个参数使用当前页面的相对路径,且包含子目录,对上面的代码好像是可以,但是不能获取从代码传过来的数据。 改造: index.html ``` {{ template &#34;default&#34; }} {{ define &#34;content&#34; }} &lt;div&gt;默认页面&lt;/div&gt; &lt;div&gt;{{ . }} &lt;/div&gt; {{ end }} ``` login.html ``` {{ template &#34;single&#34; }} {{ define &#34;content&#34; }} &lt;div&gt;登录页面&lt;/div&gt; &lt;div&gt;{{ . }} &lt;/div&gt; {{ end }} ``` 简化partials部分的index ``` func home(w http.ResponseWriter, r *http.Request) { t, err := template.ParseFiles(&#34;templates/views/index.html&#34;, &#34;templates/layouts/single.html&#34;, &#34;templates/layouts/default.html&#34;) if err != nil { fmt.Println(err) } t.ExecuteTemplate(w, &#34;default&#34;, &amp;map[string]interface{}{ &#34;key1&#34;: &#34;value1&#34;, }) } ``` 第二个参数是default,浏览器显示 ``` 默认页面 map[key1:value1] ``` 第二个参数是index或者index.html,浏览器显示 ``` 默认页面 ```
#2