一共有三种方法,直接上代码

package main

import (
    "log"
    "net/http"
    "path/filepath"
)

// 初始化参数

func main() {
    http.Handle("/", http.HandlerFunc(httpProcess))
    // http.Handle("/dist", http.StripPrefix("/dist", http.FileServer(http.Dir("dist"))))
    err := http.ListenAndServe(":8080", nil)
    if err != nil {
        log.Fatal("ListenAndServe: ", err)
    }
}
func httpProcess(w http.ResponseWriter, r *http.Request) {
    //第一种方法,直接读取对应文件,反馈给前端
    // contents, err := ioutil.ReadFile("./dist/index.html")
    // if err != nil {
    //  fmt.Fprintf(w, "404")
    //  return
    // }
    // fmt.Fprintf(w, "%s\n", contents)


    //第二种方法,反馈对应index主页给前端
    http.ServeFile(w, r, filepath.Join("dist", "index.html"))

}

main.go的文件位置和dist文件夹在同一级


image.png

第一种方法返回,正常的index


image.png

第二种方法返回,也是可以正常反馈index主页

第三种方法,使用FileServer函数反馈,静态资源目录

注意,注意,注意使用的时候分清楚这两个函数的区别

1.FileServer是反馈一个资源目录

2.ServeFile是将静态资源反馈给一个请求