go语言前端模板的使用
一、配置直接加载静态目录
-
1、项目中创建一个文件夹为
assets
来存放静态目录(图片、css
、js
) -
2、在
main.go
文件中添加以下代码package main import "net/http" func main() { http.Handle("/assets/", http.FileServer(http.Dir("."))) http.ListenAndServe(":8080", nil) }
-
3、直接在浏览器上输入
http://localhost:8080/assets/1122.jpg
就可以访问静态目录的文件 -
4、如果在
gin
中使用呢package main import ( "github.com/gin-gonic/gin" "net/http" ) func main() { router := gin.Default() router.StaticFS("/assets/", http.Dir("./assets")) router.Run(":8080") }
二、模板渲染
-
1、在项目中创建一个
views
的文件,并且里面存放html
模板 -
2、创建一个通用的模板渲染方法
func RegisterView() { // 一次性解析出全部的模板 tpl, err := template.ParseGlob("views/**/*") if err != nil { log.Fatal("解析模板出错" err.Error()) } for _, item := range tpl.Templates() { templateName := item.Name() fmt.Println("当前模板名称:" templateName) http.HandleFunc(templateName, func(writer http.ResponseWriter, request *http.Request) { err := tpl.ExecuteTemplate(writer, templateName, nil) if err != nil { log.Fatal("渲染模板失败:" err.Error()) } }) } }
-
3、直接使用
func main() { http.Handle("/assets/", http.FileServer(http.Dir("."))) // 全局注册模板渲染器 RegisterView() http.ListenAndServe(":8080", nil) }
-
4、在
view/user/login.html
文件中添加前端代码{{define "/user/login.html"}} <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <h1>登录</h1> </body> </html> {{end}}
-
5、浏览器上输入地址
http://localhost:8080/user/login.html
-
6、在
gin
中渲染模板package main import ( "github.com/gin-gonic/gin" "net/http" ) func main() { router := gin.Default() router.StaticFS("/assets/", http.Dir("./assets")) router.LoadHTMLGlob("views/**/*") router.GET("/user/register", func(ctx *gin.Context) { ctx.HTML(http.StatusOK, "register.html", nil) }) router.Run(":8080") }
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <h1>注册页面</h1> <img src="/assets/1122.jpg" /> </body> </html>
-
7、页面访问
http://localhost:8080/user/register
三、公共模板的嵌套
-
1、原生中使用
{{define "/user/login.html"}} <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <h1>登录</h1> {{template "/user/test1.html"}} </body> </html> {{end}}
-
2、在
gin
中<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <h1>注册页面</h1> <img src="/assets/1122.jpg" /> {{template "/user/test2.html"}} </body> </html>
{{ define "/user/test2.html" }} <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <h1>测试</h1> </body> </html> {{end}}
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgfbcaf
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01