golang 返回html页面,golang在指定的路由返回静态html文件

如果所有静态文件在同一个树下,则可以使用

http.FileServer:

http.Handle("/s/", http.StripPrefix("/s/", http.FileServer(http.Dir("/path/to/static/files/"))))

否则,将您想要的html文件预加载到func init()中的映射中,然后根据请求的路径为fmt.Fprint创建一个处理程序.

简单静态文件处理程序的示例:

func StaticFilesHandler(path, prefix, suffix string) func(w http.ResponseWriter, req *http.Request) {

files, err := filepath.Glob(filepath.Join(path, "*", suffix))

if err != nil {

panic(err)

}

m := make(map[string][]byte, len(files))

for _, fn := range files {

if data, err := ioutil.ReadFile(fn); err == nil {

fn = strings.TrimPrefix(fn, path)

fn = strings.TrimSuffix(fn, suffix)

m[fn] = data

} else {

panic(err)

}

}

return func(w http.ResponseWriter, req *http.Request) {

path := strings.TrimPrefix(req.URL.Path, prefix)

if data := m[path]; data != nil {

fmt.Fprint(w, data)

} else {

http.NotFound(w, req)

}

}

}

然后你就可以使用它:

http.Handle("/s/", StaticFilesHandler("/path/to/static/files", "/s/", ".html"))

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值