ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

go template修改定界符Delims的坑

2020-05-15 13:02:14  阅读:340  来源: 互联网

标签:定界符 http main1 Delims template go main 模板


直接上代码:

go:

package main

import (
    "fmt"
    "html/template"
    "net/http"
)

type V struct {
    A string
}

func main() {
    Serve()
}

func Serve() {
    //静态文件服务
    http.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("./static"))))
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        // 解析指定文件生成模板对象
        t, _ := template.New("").Delims("[[", "]]").ParseFiles("v/main.vue")
        Data := V{A: "pu369:go+vue真是稀缺组合"}
        //渲染输出
        t.ExecuteTemplate(w, "main1", Data)

    })
    fmt.Println("http://localhost:8000")
    http.ListenAndServe(":8000", nil)
}

v/main.vue

[[define "main1"]]
<html>
<head>
<!-- 注意以下三行引入顺序 -->
<link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<script src="https://unpkg.com/element-ui/lib/index.js"></script>
</head>
<body>
[[.A]]
<div id="app">
 
</div>

<script>
var app=new Vue({
    el:"#app"

})
</script>
</body>
</html>
[[end]]

要点:

1、template.New的参数可以为空

2、当Delims和ParseFiles连用时,要配合t.ExecuteTemplate ,而不是t.Execute。

3、如:首先用Delims("[[", "]]")指定新定界符为 双中括号,然后在t.ExecuteTemplate中的模板名(如:main1)必须与模板中用[[define "main1"]] 一样。还有坑:注意模板名main1是带双引号的,并且define已经采用双中括号了。

 

标签:定界符,http,main1,Delims,template,go,main,模板
来源: https://www.cnblogs.com/pu369/p/12894267.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有