无法在golang中提供静态html文件

时间:2016-03-24 12:36:40

标签: html go

我正在尝试关注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

2 个答案:

答案 0 :(得分:0)

根据您文件夹结构的链接,我猜你需要path := "../public/" + req.URL.Path。您的应用程序从bin目录运行,因此您无法直接进入同级目录,需要..出一个目录,此时public实际上是一个选项

答案 1 :(得分:0)

正确的路径是../../public,因为您的main.go文件位于main / src文件夹中。