我在 Go 中创建了一个服务器,我正在尝试在浏览器中运行一个 html 文件。但是浏览器只是像 txt 文件一样打印出代码,而不是呈现 html 格式。我的 index.html 文件保存在 /public 目录中。我的 Go 代码如下所示:package 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))) }}
3 回答
海绵宝宝撒
TA贡献1809条经验 获得超8个赞
在您的主要尝试中,使用http.HandleFunc("/", ServeHTTP)
then 编辑ServeHTTP
方法,使其没有接收器,即;func ServeHTTP(w http.ResponseWriter, req *http.Request)
您尝试使用该对象,该Handle
方法也可能工作正常(如果正确实施),但大多数示例都使用HandleFunc
,如果您这样做,我敢打赌您的问题会消失。
唯一会导致您观察到的问题的另一件事是无法读取内容分配给的文件,data
或者对该文件中的数据实际存在一些误解。
- 3 回答
- 0 关注
- 254 浏览
添加回答
举报
0/150
提交
取消