首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Golang handlefunc

Golang handlefunc
EN

Stack Overflow用户
提问于 2021-10-07 13:51:46
回答 1查看 126关注 0票数 0

所以我有一个奇怪的问题,一些路由可以工作,而另一些不能。我将首先展示我的主函数,然后给出问题的例子。

代码语言:javascript
复制
func main() {
    http.HandleFunc("/", home)
    http.HandleFunc("/project", project)
    http.HandleFunc("/about", about)
    http.HandleFunc("/contact", contact)

    http.Handle("/resources/", http.StripPrefix("/resources", http.FileServer(http.Dir("./assets"))))

    err := http.ListenAndServe(":80", nil)
    if err != nil {
        fmt.Println("ListendAndServe doesn't work : ", err)
    }
}

例如,路由"/contact/“不起作用,当我运行此代码并转到localhost/contact时,它会将我转到主页。但是,当我将Handlefunc中的路由更改为"/contactos“,然后转到本地主机/contactos时,它确实起作用了。

另一个例子,"/project“现在可以用了,但是当我把它改成"/projects”时,它就不能用了。

EN

回答 1

Stack Overflow用户

发布于 2021-10-07 14:07:49

请注意,如果您注册了/project/ (注意尾部斜杠),那么/project//project都将工作(带或不带尾部斜杠)。如果您注册了/project (没有尾随斜杠),那么只有/project可以工作,根处理程序/将匹配/project/

引用http.ServeMux

如果子树已注册,并且收到命名没有其尾随斜杠的子树根的请求,则ServeMux会将该请求重定向到子树根(添加尾随斜杠)。可以使用不带尾随斜杠的路径的单独注册来覆盖此行为。例如,注册"/images/“会导致ServeMux将对"/images”的请求重定向到"/images/",除非单独注册了"/images“。

查看相关问题:

How to map to the same function with a pattern that ends with or with "/" with http.HandleFunc

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69482413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档