15158846557 在线咨询 在线咨询
15158846557 在线咨询
所在位置: 首页 > 营销资讯 > 网站运营 > 20210830关于gin加载静态(动态)网页(模板)的.html(.tepl)文件的正确方式

20210830关于gin加载静态(动态)网页(模板)的.html(.tepl)文件的正确方式

时间:2023-06-12 06:36:01 | 来源:网站运营

时间:2023-06-12 06:36:01 来源:网站运营

20210830关于gin加载静态(动态)网页(模板)的.html(.tepl)文件的正确方式:标题里的这些括号只是为了告诉你不要让这些名词所迷惑,所有的这些名字gin框架都能实现加载、hold你脑仁里所希望的那些需求的

首先看文章中的基础语法:

主要有两个方式:LoadHTMLGlob()与LoadHTMLFiles()

LoadHTMLGlob()是用来将一个相对路径写入运行环境,以便调用:

router := gin.Default()router.LoadHTMLGlob("templates/*") LoadHTMLFiles()则是写入一连串相对路径文件地址:

router.LoadHTMLFiles("templates/template1.html", "templates/template2.html")这里必需要拓展一下,其实还有其他相关的方法,请看如下文章:

重点是在这里:(engine即router)

engine :=gin.Default()engine.StaticFS("/static",http.Dir("./static"))这篇文章对StaticFS做了具体的解释:

说白了StaticFS是用来处理静态文件的,而LoadHTMLGlob()与LoadHTMLFiles()则是用来处理网页模板的(工具的功能边界)。

某种角度上讲网页模板(.tmpl文件)就是一种静态文件,所以自然而然也能被StaticFS处理

补充:LoadHTMLGlob()与LoadHTMLFiles()既可以处理.tmpl文件也可以处理.html文件)

我们需要用这三个东西配合着来实现需求




看一个配合着使用的例子:

看了之后你会发现一个重点:怎么说呢,或许很多东西为啥会设计成这样或那样都会有些历史原因吧。似乎单独的.js文件其实也是静态文件、而代码内没有动态代码的.html文件就更是静态文件了,但是代码内有动态代码(如js代码)的.html文件大家就认为他是“动态文件”了,是不是技术的发展过程中大家有迫切的需求想把“动态文件”当作静态文件使用,所以才会产生出这样的“实现引用”的书写方式吧:

<script charset="utf-8" src="js/home.js"></script>无论如何,总之以这为基础,这样一来gin就可以加载这个包含着上述“实现引用功能”代码的“静态html”了

继续说文章内容,文章里其实没有展示太多代码,你可以看其他几篇,不过文章的思路其实就是gin的模板功能模块与静态资源功能模块配合着使用的具体方式,我来写个:

func main() { router := gin.Default() router.LoadHTMLFiles("templates/index.html", "templates/login.html") router.StaticFS("/js","js") router.GET("/index", func(c *gin.Context) { c.HTML(http.StatusOK, "index.html", gin.H{ "说明":"index.html内部虽不包含js语法但用html语法引用了路径文件js/index.js" } }1.通过模板功能(LoadHTMLFiles())加载了一个网页(这里是网页而不是模板,当然模板也可以,模板的使用方式单独学就行)

2.通过静态资源功能(StaticFS())加载了文件文件夹js下的index.js文件(图片之类的也是用StaticFS)操作

3.gin在执行代码中GET路由的过程中会自动以”GET自己“的方式(正如文中所述),将资源一并返回给用户浏览器,gin会确保用户浏览器可以有效的执行这个”动(静)态的页面“

4.你不用StaticFS()把静态文件”预先放进去“gin是找不到他的

总之大部分时候必然需要两者配合着实现

还有些关于使用细节与坑的文章:

感谢各位前辈 ‍ ‍ ‍

关键词:模板,文件,方式,正确,动态,静态

74
73
25
news

版权所有© 亿企邦 1997-2025 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭