Go Web 服务器无法正确处理 /delete/ 模式

我刚刚玩了一个 google GO 官方示例编写 Web 应用程序,我尝试添加删除页面的功能,但没有奏效。原因是,如果你"/delete/"作为参数传递给http.HandleFunc()函数,你总是会得到 404 Page not found。任何其他"foobar"字符串都按预期工作。


简化代码:


package main


import (

    "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)

}

重现步骤:

  1. http://localhost:8080/hello/world从浏览器编译和调用

  2. 输出是 /hello/world

  3. 现在评论http.HandleFunc("/hello/", handler)和取消评论http.HandleFunc("/delete/", handler)

  4. http://localhost:8080/delete/world从浏览器编译和调用

  5. 结果是404 page not found,预期/delete/world

问:"/delete/"模式 有什么特殊含义吗?是否有任何技术原因或只是一个错误?


胡子哥哥
浏览 174回答 1
1回答

翻翻过去那场雪

这在这里工作得很好,它不可能在一种情况下工作,而不是在另一种情况下。您只是更改两行之间的字符串"hello"的字符串"delete"。我建议更仔细地再试一次。它必须是其他地方的细节。真正的原因是没有检查ListenAndServe. 一个旧的副本在后台运行,并且缺乏错误处理使它不被察觉。浏览器正在从旧服务器获取结果。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go