gpt4 book ai didi

go - 尝试为使用 react-router 的 React SPA 提供服务

转载 作者:IT王子 更新时间:2023-10-29 01:46:48 27 4
gpt4 key购买 nike

我正在使用 Gorilla/Mux 进行路由,并希望在不考虑 URL 路径的情况下为 React SPA 提供服务。

func main() {
fmt.Println("server running...")

hub := newHub()
go hub.run()

router := mux.NewRouter()
router.HandleFunc("/api/create", Api)
router.HandleFunc("/api/getpoll", Api)
router.HandleFunc("/api/update", Api)

router.HandleFunc("/sockets/{id}", func(w http.ResponseWriter, r
*http.Request) {
Socketme(hub, w, r)
})

// router.HandleFunc("/{rest:.*}", emberHandler)
router.PathPrefix("/").HandlerFunc(serveFile)
log.Fatal(http.ListenAndServe(":5000", router))
}

func serveFile(w http.ResponseWriter, r *http.Request) {
http.FileServer(http.Dir("./public/build")).ServeHTTP(w, r)
}

不希望 Go 出现 404s,Spa 应该处理这些路由。

最佳答案

Router导出一个 NotFoundHandler 字段,您可以将其设置为自定义处理程序。

router := mux.NewRouter()
router.NotFoundHandler = MyCustom404Handler

所以你可以这样做:

router.NotFoundHandler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
http.ServeFile(w, r, "./public/build/index.html")
}))

以便它在通常返回 404

时始终为您的索引页面提供服务

关于go - 尝试为使用 react-router 的 React SPA 提供服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53876700/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com