Gin是Go的web框架(官网在这里gin-gonic), 一般情况下,Gin需要用到静态文件的场景有
- Gin template
- CSS/JS文件
- HTML 文件
Template和THML文件
Template一般是用下面这种方式:
r := gin.Default()
r.LoadHTMLGlob("./html/*")
当然如果你的目录结构在html下面还有细分的文件夹,比如:
project_root
- html
- service
- index.tmpl
- login.tmpl
- ...tmpl
- client
- index.tmpl
- transform.tmpl
- ...tmpl
那就需要用下面这种方式:
r.LoadHTMLGlob("./html/**/*")
但是LoadHTMLGlob只能处理Gin的模版,如果想用Gin+Vue的方式,前后端分离,而Gin的模版跟Vue的模版又不一样,这种方式就不行了,简单来说,如果你的html是Vue的,那么使用LoadHTMGlob来load就会报错,这时候就需要直接返回THML文件,而不是load template
r.GET("/", func(c *gin.Context) {
c.File("html/index.html")
})
CSS/JS文件
css/js文件主要是在html或者html模版中会用到,首先需要把静态文件存放的路径注册成一个StaticFileService
r := gin.Default()
r.Static("/css", "statics/css")
然后在html或者html模版中这么使用就可以了
<link rel="stylesheet" type="text/css" href="/css/style.css">