我试图建立一些水疗/水疗与金和反应路由器作为后端,但我遇到了一个小问题。
react路由器似乎基于这样的想法:任何“坏”的请求(例如/ path /dynamicRessourceHash )都会向用户提供一个.html页面(上述html页面然后从服务器导入.js ),然后由路由器启动,分析路径,并向应用程序提供在后台进行获取请求所需的信息,并将资源传递给用户。
那么,使用std中的"net/http“来配置这样的服务器的标准方法是什么,也就是说,通常在预先配置的端点上配置服务器资源,但将所有其他端点作为通配符处理一个(或几个)路由?
举个例子(从今天起,我似乎不善于言谈)。假设用户在以下位置发出请求:
/route1 1/其他东西?.等等,不管在第二个"/“之后发生了什么,我是否希望/route1 1/的处理程序函数为用户提供服务(注意,我不希望用户被重定向,因为这会破坏URL,从而影响客户端路由)。
发布于 2016-12-07 12:29:12
在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复用器。
例如:
在httprouter中设置httprouter.Router.NotFound
或
在gorilla/mux中设置mix.Router.NotFoundHandler
https://stackoverflow.com/questions/41012485
复制相似问题