can';t在golang中提供静态html文件
我正在努力学习golang的在线视频课程,但在提供静态html文件时遇到了一个错误can';t在golang中提供静态html文件,html,go,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 *MyH
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)))
}
}
我的文件夹结构
.根据到文件夹结构的链接,我猜您需要
路径:=>。/public/“+req.URL.path
。您的应用程序正在从bin
目录运行,因此您不能直接进入同级目录,您需要。
从一个目录中退出,此时public
实际上是一个选项。根据到文件夹结构的链接,我猜您需要路径:=“./public/”+req.URL.Path
。您的应用程序正在从bin
目录运行,因此您不能直接进入同级目录,您需要。
退出一个目录,此时public
实际上是一个选项。正确路径为.././public,因为main.go文件位于main/src文件夹中。正确路径为.././public,因为main.go文件位于main/src文件夹中。path:=“public/”+req.URL.path路径设置不正确。最简单的方法是为公众提供绝对根路径。但讲师似乎让它工作,你能给我一个如何使其正确的链接吗?@Shavkat你是从你认为的地方运行可执行文件的吗?顺便说一句,你的指导老师的代码真的不是惯用语。@Not_a_Golfer我只是无法访问/html/home.html文件,我得到404path:=“public/”+req.URL.Path路径设置不正确。最简单的方法是为公众提供绝对根路径。但讲师似乎让它工作,你能给我一个如何使其正确的链接吗?@Shavkat你是从你认为的地方运行可执行文件的吗?顺便说一句,你的指导老师的代码真的很不地道。@Not_a_Golfer我就是不能访问/html/home.html文件我得到404它找不到任何文件,即使主页是404也找不到found@Shavkat它不会在bin
或bin/public
中找到任何内容,因为该文件夹不存在。它需要查看。/public
。读取时,该目录或应用程序当前工作目录不是bin
,我假设在这种情况下,请尝试绝对路径/找出您的CWD是什么,然后从那里创建您的路径。这里唯一的问题是你的路径肯定是错误的。它找不到任何文件,即使主页是404也找不到found@Shavkat它不会在bin
或bin/public
中找到任何内容,因为该文件夹不存在。它需要查看。/public
。读取时,该目录或应用程序当前工作目录不是bin
,我假设在这种情况下,请尝试绝对路径/找出您的CWD是什么,然后从那里创建您的路径。这里唯一的问题是你的道路肯定是错误的。