猿问

无法在 GoLang 中读取文件

我是 GoLang 开发的新手,正在尝试制作一个简单的网络应用程序。我一直在关注本教程https://www.youtube.com/watch?v=AiRhWG-2nGU。


但是我什至不能提供 index.html 文件。


这是我的代码


func check(e error) {

    if e != nil {

        fmt.Println(e)

        panic(e)

    }

}


func Index(w http.ResponseWriter, r *http.Request) {

    fmt.Println("Index functoin")

    indexHTML, err := ioutil.ReadFile("index.html")

    check(err)

    fmt.Println(indexHTML)

    w.Write(indexHTML)

}

这是产生的错误


Index functoin

open index.html: no such file or directory

我的树结构是这样的


BasicWebServer/

BasicWebServer/main.go

BasicWebServer/index.html

BasicWebServer/static/

BasicWebServer/static/index.html

我想要的只是能够为 index.html 提供服务,因为它是一个已经运行平稳的 AngularJS 应用程序。我试过这样的静态文件


router := NewRouter()

s := http.StripPrefix("/static/", http.FileServer(http.Dir("./static/")))

但它没有用,所以我现在正在尝试我能想到的最基本的方法。


请帮忙。


月关宝盒
浏览 272回答 1
1回答

慕标5832272

如果您想BasicWebServer/main.go显示BasicWebServer/index.html,而不是文件夹内的那个static,那么您似乎没有正确配置 HTTP 服务器。这是您的代码,包含包声明、导入和main按预期工作的函数。package mainimport (    "fmt"    "io/ioutil"    "net/http")func check(e error) {    if e != nil {        fmt.Println(e)        panic(e)    }}func Index(w http.ResponseWriter, r *http.Request) {    fmt.Println("Index functoin")    indexHTML, err := ioutil.ReadFile("index.html")    check(err)    fmt.Println(indexHTML)    w.Write(indexHTML)}func main() {    http.HandleFunc("/", Index)    err := http.ListenAndServe(":8080", nil)    check(err)}
随时随地看视频慕课网APP

相关分类

Go
我要回答