跳转至

静态文件代理

默认处理

  • 在创建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不提供权限校验,只要文件命中就会返回,如果需要权限处理,则需要自处理函数