在 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"))))
我有以下代码:
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"))))