关于 go:Serving Subdirectories in HTTP handlers [GoLang]

Serving Subdirectories in HTTP handlers [GoLang]

我有以下代码:

1
2
3
4
r := mux.NewRouter()
r.Handle("/", http.FileServer(http.Dir("./frontend/build/")))
r.Handle("/static", http.FileServer(http.Dir("./frontend/build/static/")))
r.PathPrefix("/api").Handler(auth)

/api 应该是安全的。如果用户点击 /,我希望他们查看 PROJECTDIR/frontend 目录中的 index.html

前端目录看起来像

1
2
3
4
5
6
7
frontend
    /build
        index.html
        /static
            /js
            /css
            /media

index.html 从 /static 加载所有内容。无论我如何配置它,当我访问 localhost:3000 时,我可以获得 index.html/static 下的所有内容都是 404\\'d。

我是如何错误配置的?


假设您想在端点 /static 上提供目录 "static" 的全部内容,并且您正在运行 bsd/linux 机器,那么以下语法应该可以工作:

1
http.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("./static"))))