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

如何在 Go 服务器上运行 html

如何在 Go 服务器上运行 html

Go
蓝山帝景 2021-10-18 16:36:01
我在 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或者对该文件中的数据实际存在一些误解。


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

添加回答

举报

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