gpt4 book ai didi

http - 如何将 http.HandleFunc 与 slugs 一起使用

转载 作者:数据小太阳 更新时间:2023-10-29 03:35:22 25 4
gpt4 key购买 nike

我正在做一个 Go 项目。当我尝试将 slugs 与 http.HandleFunc 一起使用时,我收到“404 页面未找到错误”。当我取出子弹时,我的路由再次工作。

主要有:

  http.HandleFunc("/products/feedback/{slug}", AddFeedbackHandler)

调用:

var AddFeedbackHandler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request){
w.Write([]byte("ChecksOut"))
})

当我将路径替换为:

  http.HandleFunc("/products/feedback", AddFeedbackHandler)

它又工作了。可能是什么原因造成的?

最佳答案

尝试以下操作:

const feedbackPath = "/products/feedback/"  // note trailing slash.

func AddFeedbackHandler(w http.ResponseWriter, r *http.Request) {
var slug string
if strings.HasPrefix(r.URL.Path, feedbackPath) {
slug = r.URL.Path[len(feedbackPath):]
}
fmt.Println("the slug is: ", slug)
w.Write([]byte("ChecksOut"))
}

使用此代码添加处理程序:

http.HandleFunc(feedbackPath, AddFeedbackHandler)

路径上的尾部斜杠是子树匹配所必需的。您可以在 ServeMux documentation 中阅读有关使用尾部斜杠的详细信息。 .

playground example

关于http - 如何将 http.HandleFunc 与 slugs 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42149914/

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