Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Go 将可变数量的URL映射到HandleFunc_Go - Fatal编程技术网

Go 将可变数量的URL映射到HandleFunc

Go 将可变数量的URL映射到HandleFunc,go,Go,这是我第一次尝试用Go(Golang)写一个小博客。现在,我有一个只有几页的小网站。我的main包含此项 http.HandleFunc("/about", about) http.HandleFunc("/contact", contact) http.HandleFunc("/", homepage) if err := http.ListenAndServe(":8080", nil); err != nil { log.Fatalln(err) } 我的第一个问题是:这叫什么?

这是我第一次尝试用Go(Golang)写一个小博客。现在,我有一个只有几页的小网站。我的
main
包含此项

http.HandleFunc("/about", about)
http.HandleFunc("/contact", contact)
http.HandleFunc("/", homepage)
if err := http.ListenAndServe(":8080", nil); err != nil {
    log.Fatalln(err)
}
我的第一个问题是:这叫什么?我称之为将URL映射到函数,但我的谷歌搜索结果并没有对这些搜索词产生任何效果。这叫“路由”吗

其次,我的目标是编写一个小型博客应用程序。我想使用数据库来保存博客文章和其他数据。然而,将URL映射到像我上面所做的那样的函数似乎并不正确,因为在有人发表博客文章之前,无法知道URL应该是什么。我希望URL与博客文章标题匹配。此外,可能有数百篇博客文章,因此编写一堆http.HandleFuncs似乎是不合理的

最后,我的问题是:有什么选项可以解决这个障碍?

另一种“博客应用程序”的方法是静态站点生成器
您可以在()中找到一个很好的示例,这意味着:

但更一般地说,它被称为一个路由器,你可以在这个优秀的中看到它们:


您可能会发现本文很有帮助:。这是一个从零开始创建wiki的向导。它很容易被改编成博客。最终代码清单在
if port > 0 {
    if !viper.GetBool("DisableLiveReload") {
        livereload.Initialize()
        http.HandleFunc("/livereload.js", livereload.ServeJS)
        http.HandleFunc("/livereload", livereload.Handler)
    }
    go serve(port)
}