我刚刚玩了一个 google GO 官方示例编写 Web 应用程序,我尝试添加删除页面的功能,但没有奏效。原因是,如果你"/delete/"作为参数传递给http.HandleFunc()函数,你总是会得到 404 Page not found。任何其他"foobar"字符串都按预期工作。简化代码:package mainimport ( "fmt" "net/http")func handler(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "%s", r.URL.Path)}func main() { http.HandleFunc("/hello/", handler) //http.HandleFunc("/delete/", handler) http.ListenAndServe(":8080", nil)}重现步骤:http://localhost:8080/hello/world从浏览器编译和调用输出是 /hello/world现在评论http.HandleFunc("/hello/", handler)和取消评论http.HandleFunc("/delete/", handler)http://localhost:8080/delete/world从浏览器编译和调用结果是404 page not found,预期/delete/world问:"/delete/"模式 有什么特殊含义吗?是否有任何技术原因或只是一个错误?
1 回答
翻翻过去那场雪
TA贡献2065条经验 获得超14个赞
这在这里工作得很好,它不可能在一种情况下工作,而不是在另一种情况下。您只是更改两行之间的字符串"hello"
的字符串"delete"
。
我建议更仔细地再试一次。它必须是其他地方的细节。
真正的原因是没有检查ListenAndServe
. 一个旧的副本在后台运行,并且缺乏错误处理使它不被察觉。浏览器正在从旧服务器获取结果。
- 1 回答
- 0 关注
- 173 浏览
添加回答
举报
0/150
提交
取消