概述
事故的起因是这样的,我跟着一位UP主大佬,通过Go语言的gin框架+vue开发了一套后台博客管理+前端页面展示的项目,因为大佬开发完成了,后续的一些没讲,就自己琢磨,结果将后台和前端展示两部分绑定到gin框架的时候,在模板渲染这块出现了问题,
经过多方百度,依然没有解决,最后在群里讯问,得到一些回答,带来了一点灵感,其中比较有帮助的两点是:1、建一个demo测试一下,2、静态文件不能放在模板目录里,然后我建了一个demo,并完整复现了在项目中遇到的问题,经过排查,原因如下:
我们先说静态文件的问题:
如果静态文件跟我一样,放在了模板目录下(vue打包后直接拷贝过来的,所以没想到要改一下):
这样就会反复抛出如下异常,不管怎么改都没用,项目根本无法启动,崩溃+1,怀疑人生:
然后灵光一闪,想到群友说的,静态文件不能放在模板目录里,看这路径,明显是在找模板的时候,找错文件夹,进入了静态文件夹里面。
把上面改了后就出现了第二个问题,此时你会怀疑是不是刚刚改错了,不要慌(我很慌,没错,就是我在这上面怀疑很久,反复修改),真正的原因在下面:
我的后台admin文件夹里面首页是index.html,我的前端front文件夹里面首页同样是index.html,所以导致我不管怎么设置如下代码:
//托管admin后台静态资源
r.LoadHTMLGlob("template/**/*")
r.Static("admin/static","static/admin/static")
r.StaticFile("admin/favicon.ico","template/admin/favicon.ico")
r.GET("admin",func(c *gin.Context){
c.HTML(http.StatusOK,"admin.html",nil)
})
//托管front前端页面静态资源
r.Static("front/static","static/front/static")
r.StaticFile("front/favicon.ico","template/front/favicon.ico")
r.GET("front",func(c *gin.Context){
c.HTML(http.StatusOK,"front.html",nil)
})
都会抛出异常,说该文件未定义,崩溃再次+1,继续怀疑人生
当问题解决完成,回头一看,居然如此简单,怀疑人生...
果然,还是我太菜了,记录一下,免得忘记了
最后,感谢热心群友的帮助
最后
以上就是甜美柠檬为你收集整理的Go语言Gin框架html模板多目录渲染躺坑记的全部内容,希望文章能够帮你解决Go语言Gin框架html模板多目录渲染躺坑记所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复