无法在GoLang中读取文件

时间:2016-06-22 17:24:14

标签: go static-files

我是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/")))

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

请帮忙。

谢谢

1 个答案:

答案 0 :(得分:2)

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

这是您的代码,包声明,导入和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) } 功能按预期工作。

timestamp

03/08-18:30:59.660893 
03/08-18:31:38.243675 
03/08-18:31:38.243473 
03/08-18:31:44.635780 
03/08-18:31:59.779519 
03/08-18:31:59.795424 
03/08-18:31:59.798975 
03/08-18:31:59.803587 
03/08-18:34:35.570798 
03/08-18:34:35.569390 
03/08-18:34:42.408985 
03/08-18:34:42.405196 
03/08-18:34:42.559961 
03/08-18:34:42.558567