为了账号安全,请及时绑定邮箱和手机立即绑定

如何从 golang 中的 url 中删除 index.html 路径

如何从 golang 中的 url 中删除 index.html 路径

Go
白板的微信 2021-10-18 16:11:30
如何index.html从我的 URL 栏中删除,例如localhost:8000/index.htmlpackage mainimport (    "net/http"    "io/ioutil")func main() {    http.Handle("/", new(MyHandler))    http.ListenAndServe(":8000", nil)}type MyHandler struct {    http.Handler}func (this *MyHandler) ServeHTTP(w http.ResponseWriter, req *http.Request) {    path := "public" + req.URL.Path    data, err := ioutil.ReadFile(string(path))    if err == nil {        w.Write(data)    } else {        w.WriteHeader(404)        w.Write([]byte("404 - " + http.StatusText(404)))    }}
查看完整描述

1 回答

?
交互式爱情

TA贡献1712条经验 获得超3个赞

如果 URL 路径为空,则添加条件以提供 index.html:


path := "public"

if req.URL.Path == "/" {

    path += "/index.html"

} else {

    path += req.URL.Path

}

此外,最好使用net/http.ServeFileover 手动将数据写入输出流(请参阅net/http#ServeContent的文档以了解为什么这是一个好主意)。


还值得注意的是,存在用于提供文件的内置处理程序。


查看完整回答
反对 回复 2021-10-18
  • 1 回答
  • 0 关注
  • 160 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信