我正在尝试关注golang上的在线视频课程,我收到错误提供静态html文件。
package main
import (
"io/ioutil"
"net/http"
)
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)))
}
}
我的文件夹结构 looks like this
答案 0 :(得分:0)
根据您文件夹结构的链接,我猜你需要path := "../public/" + req.URL.Path
。您的应用程序从bin
目录运行,因此您无法直接进入同级目录,需要..
出一个目录,此时public
实际上是一个选项
答案 1 :(得分:0)
正确的路径是../../public,因为您的main.go文件位于main / src文件夹中。