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

问题描述 投票:0回答:2

我有以下代码:

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
应该是安全的。如果用户点击
/
,我希望他们查看
index.html
目录中的
PROJECTDIR/frontend

前端目录看起来像

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

index.html 加载来自

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

我的配置是否错误?

go gorilla negroni
2个回答
5
投票

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

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

0
投票

试试这个

http.Handle("GET /logs/{path...}", http.StripPrefix("/logs",   http.FileServer(http.Dir(logDir))))
© www.soinside.com 2019 - 2024. All rights reserved.