我试图用golang和react-router作为后端来构建一些spa / spw,但我遇到了一个小问题。
React-router似乎基于任何"坏"对服务器的请求(例如/ path / dynamicRessourceHash)向用户传递.html页面(然后html页面然后从服务器导入.js)然后反应路由器然后启动,分析路径并向应用程序提供所需的信息在后台进行获取请求并将资源提供给用户。
那么使用" net / http"配置像这样的服务器的标准方法是什么?从std,即通常在预先配置的端点上的服务器资源,但是将所有其他端点视为一个(或几个)路由的通配符?
举一个例子(从今天开始,我似乎很难说话)。假设用户在以下位置发出请求:
/ route1 / whatever / someotherstuff?...等等第二个" /"我希望用户由/ route1 /的处理程序函数提供服务(注意,我不希望用户被重定向,因为这会乱搞URL并因此导致客户端路由)。
答案 0 :(得分:2)
在net/http
中,您可以使用处理程序而不是提供/
路由来返回404页面,因为所有未知/未注册的路由都匹配/
。
http.HandleFunc("/", handler)
...
func handler(w http.ResponseWriter, r *http.Request) {
if r.URL.Path != "/" {
w.WriteHeader(http.StatusNotFound)
// Write custom 404 Page to w.Write()
return
}
// Handling for route /
}
您还可以使用支持Not Found Handlers
的其他http多路复用器。
EG。
在httprouter
中设置httprouter.Router.NotFound
OR