如何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的文档以了解为什么这是一个好主意)。
还值得注意的是,存在用于提供文件的内置处理程序。
- 1 回答
- 0 关注
- 160 浏览
添加回答
举报
0/150
提交
取消