无法在GoLang中读取文件

Can't read file in 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/")))

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

请帮忙。

谢谢

如果您希望 BasicWebServer/main.go 显示 BasicWebServer/index.html,而不是 static 文件夹中的那个,那么您似乎没有正确配置 HTTP 服务器。

这是您的代码,包含包声明、导入和一个按预期工作的 main 函数。

package main

import (
    "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)
}