如何在 Go 服务器上运行 html

我在 Go 中创建了一个服务器,我正在尝试在浏览器中运行一个 html 文件。但是浏览器只是像 txt 文件一样打印出代码,而不是呈现 html 格式。我的 index.html 文件保存在 /public 目录中。


我的 Go 代码如下所示:


package main


import (

    "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)))

    }


}


蓝山帝景
浏览 255回答 3
3回答

海绵宝宝撒

在您的主要尝试中,使用http.HandleFunc("/", ServeHTTP)then 编辑ServeHTTP方法,使其没有接收器,即;func ServeHTTP(w http.ResponseWriter, req *http.Request)您尝试使用该对象,该Handle方法也可能工作正常(如果正确实施),但大多数示例都使用HandleFunc,如果您这样做,我敢打赌您的问题会消失。唯一会导致您观察到的问题的另一件事是无法读取内容分配给的文件,data或者对该文件中的数据实际存在一些误解。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go