用gin来代理静态请求

最近在跟别人合作一个项目,由于对方不会用nginx,所以我得尝试用gin来代理静态页面。

gin虽然有代理静态页面的方法:Static(relativePath, root string),但是不符合我的需求。因为我一般会将静态页面分为多种,比如路由为"/“则为html页面,因为这样符合一般的访问习惯,但在gin中不能这么做,因为gin的路由是一个前缀树,如果把一个路由设置为”/",其他路由都会出错。

然而我在gin的issue里找到了一个库: “github.com/gin-contrib/static”,完美的解决了我的问题。

举个例子,假如我需要的路由为:

"/"            =>  前端页面
"/js/"         =>  js文件
"/css/"        =>  css文件
"/asset/img/"  =>  图片文件

则代码可以这样写


package main

import (
	"github.com/gin-gonic/gin"
	"github.com/gin-contrib/static"
	
)

func main() {
	server := gin.Default()
	server.Use(static.ServeRoot("/", "./static/html"))
	server.Use(static.ServeRoot("/js", "./static/js"))
	server.Use(static.ServeRoot("/css", "./static/css"))
	server.Use(static.ServeRoot("/image", "./static/asset/image"))

	if err := server.Run(":8080"); err != nil {
		panic(err)
	}
}

这个库的用法,主要是把serveRoot当作一个中间件,在每个请求之前都执行一遍,看看路径是否符合这个路由,如果符合,则返回这个静态资源,并结束这个请求。虽然性能上可能会有点问题,但是作为一个demo,这样做还是很方便的。


我的博客 blog.huining.tech

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值