我是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/")))
但它没有用,所以我现在正在尝试我能想到的最基本的方法。
请帮忙。
谢谢
答案 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