golang实战使用gin+xorm搭建go语言web框架restgo详解5.3 资源控制器

一般来说我们实现api服务器无需资源控制器,因为api一般只需要响应json/xml,但有部分应用比如cms,需要考虑到静态资源服务,这里我们需要使用资源控制器。资源控制器设计需要考虑几个方面

资源需要实现缓存,这样可以加快系统访问速度。

资源管理器需要支持灵活配置,因为很多资源服务是和nginx服务器反向代理相互整合的,需要考虑易整合性。

资源管理需要统一规划。资源有静态的如cssjs文件也有动态产生的,如上传后得到的图片文件,因此需要动态规划保证资源的存储空间和访问规则等。

我们可以对gin框架做一些封装,就可以实现强大的资源管理功能

app.properties

#静态资源及映射,如下配置则访问 localhost/assets/a.jpg 则系统将去 asset目录下寻找a.jsp
restgo.static.assets=./asset
#图片资源存放路径访问 localhost/mnt/a.jpg 则系统将去 /data/restgo/mnt目录下寻找a.jsp
restgo.static.mnt=/data/restgo/mnt
#favorite.ico 访问localhost/favorite.ico 则渲染./favorite.ico
restgo.staticfile.favicon.ico=./favicon.ico

这些实际上是通过main函数中的方法实现的

//main.go
for k,v :=range cfg.Static{
   router.Static(k, v)
}
for k,v :=range cfg.StaticFile{
   router.StaticFile(k, v)
}

其中static本质上是调用golang内置的文件服务,absolotepath是文件夹绝对路径

扫描二维码关注公众号,回复: 1892012 查看本文章
fileServer := http.StripPrefix(absolutePath, http.FileServer(fs))
fileServer.ServeHTTP(c.Writer, c.Request)

staticfile方法本质上是调用gin自身实现的GET方法

group.GET(relativePath, handler)
group.HEAD(relativePath, handler)

本文源代码源代码获取地址 https://github.com/winlion/restgo

待提供源代码清单

10.1 restgo后台管理框架

https://github.com/winlion/restgo-admin

10.天天任务清单小程序

https://github.com/winlion/dailytask

10.工业大数据采集

10.restgo cms 

10.restgo 千人大群


golang实战使用gin+xorm搭建go语言web框架restgo详解1.1 go语言的困境

golang实战使用gin+xorm搭建go语言web框架restgo详解1.2 我要做什么

golang实战使用gin+xorm搭建go语言web框架restgo详解2 框架基本架构

golang实战使用gin+xorm搭建go语言web框架restgo详解3 系统常用配置参数

golang实战使用gin+xorm搭建go语言web框架restgo详解4 路由配置

golang实战使用gin+xorm搭建go语言web框架restgo详解5 控制器C

golang实战使用gin+xorm搭建go语言web框架restgo详解5.2 跳转和重定向

golang实战使用gin+xorm搭建go语言web框架restgo详解5.3 资源控制器

golang实战使用gin+xorm搭建go语言web框架restgo详解5.4 控制器参数绑定

golang实战使用gin+xorm搭建go语言web框架restgo详解5.5 控制器模型绑定

golang实战使用gin+xorm 搭建 go语言web框架restgo搭建详解5.6 控制器参数校验

Golang go语言整合gin+xorm 搭建 web框架restgo搭建详解5.7 控制器数据响应

golang实战使用gin+xorm搭建go语言web框架restgo详解5.9 控制器controller编程

golang实战使用gin+xorm搭建go语言web框架restgo详解6.1 模型M和Orm

golang实战使用gin+xorm搭建go语言web框架restgo详解6.4 推荐编程方式

golang实战使用gin+xorm搭建go语言web框架restgo详解7 视图层V

golang实战使用gin+xorm搭建go语言web框架restgo详解8 关于模板

golang实战使用gin+xorm搭建go语言web框架restgo详解9 session、日志、鉴权


作者简介:胡文林,持续创业者,长期从事技术开源工作。微信号jiepool-winlion


猜你喜欢

转载自blog.csdn.net/keytounix/article/details/79336554