前后端分离一站式解决方案。
Gin静态资源代理中间件,该中间件由 Gin官方 gin-contrib/static 开发
go get -u github.com/gin-gonic/gin
go get -u github.com/gin-contrib/static
package main
import (
"net/http"
"github.com/gin-contrib/static"
"github.com/gin-gonic/gin"
)
func main() {
r := gin.Default()
// 特殊处理JS文件的Content-Type
_ = mime.AddExtensionType(".js", "application/javascript")
r.Use(static.Serve("/", static.LocalFile("./web", true)))
api := r.Group("/api")
api.GET("/ping", func(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{
"message": "pong",
})
})
r.Run()
}
注意: 为了正确的返还JS文件,需要手动设置后缀的
.js
文件的Content-Type响应头为application/javascript
,否则会出现 Failed to load module script: Expected a JavaScript module script but the server responded with a MIME type of “text/plain 的问题。
go run main.go
参考文献
[1]. gin-contrib/static . https://github.com/gin-contrib/static