静态文件代理
默认处理¶
- 在创建httpServer时,指定ServeStaticFunc、DefaultStaticDir即可实现对静态文件的代理功能:
func main() { httpConfig := route.ServerHTTPConfig{ //.... StaticDirs: map[string]string{ "/this": "D:/abc", "/zkb": "F:/ie310.code/011.ZKB/zkb/zkb", }, ServeStaticFunc: route.DefaultServeStatic, DefaultStaticDir: dir.GetCurrentPath(), } //......... }
- ServeStaticFunc:静态文件处理方法,默认使用route.DefaultServeStatic即可。
此函数定义在ie310go.route包下,处理规则如下:- 处理请求路径,看是否命中StaticDirs中指定的前缀,如果命中,去对应的目录检查能否命中对应的文件,命中则输出并退出处理
- StaticDirs中未命中,判断路径中是否包含Service.goss(goss是配置的可变化),不包含时认为是一个静态文件请求
- 此时去DefaultStaticDir里面查找是否有对应的文件,有则输出
- 命中失败,进行正常的api处理逻辑
- api命中失败,返回 404 page not found
自定义¶
- route.DefaultServeStatic提供默认处理,如果不符合需求,可自定义处理函数并赋值给ServerHTTPConfig.ServeStaticFunc
权限校验¶
- route.DefaultServeStatic不提供权限校验,只要文件命中就会返回,如果需要权限处理,则需要自处理函数