在 HTTP 处理程序中提供子目录 [GoLang]

Serving Subdirectories in HTTP handlers [GoLang]

我有以下代码:

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

前端目录看起来像

frontend
    /build
        index.html
        /static
            /js
            /css
            /media

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

我怎么配置不正确?

假设您想在端点 /static 上提供目录 "static" 的全部内容,并且您是 运行 一台 bsd/linux 机器,以下语法应该有效:

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