我是Golang的初学者,正在关注Let ' s Go Book.我在应用程序中创建了一个servemux实例,并使用Deliverroute模式注册根路由.我try 访问该路由,但收到404页面未找到错误.如果没有毛刺路由模式,它工作得很好.下面是我的代码.添加毛刺路由图案后有什么问题?

package main

import ( 
    "log"
    "net/http"
)
func home(w http.ResponseWriter, r *http.Request) {
    w.Write([]byte("Hello from Snippetbox"))
}
func main() {

    mux := http.NewServeMux()
    mux.HandleFunc("GET /{$}", home)

    log.Print("starting server on :4000")
    err := http.ListenAndServe(":4000", mux)
    log.Fatal(err) 
}

推荐答案

我也遇到过同样的问题.经过几次无用的回滚后,我注意到go. mo文件不存在.因此,我运行了以下命令来创建go. mo,它应该位于第2.1章中.

go mod init snippetbox.alexedwards.net

程序果然回复"来自Snippetbox的你好".

注: 我通过在visual studio代码中调试来运行代码示例,go版本为go1.22.2.

Go相关问答推荐

如何模拟嵌入. FS?

Go Net/http路由

Term~T中的类型不能是类型参数,但可以是引用类型参数的切片

在Golang中,@LATEST和@UPGRADE特殊查询有什么不同?

如何使用Promela建模语言对Golang RWLock进行建模

CGO Linux到Windows交叉编译中的未知类型名称

[0]Func()as";请勿比较哨兵类型

使用Golang的Lambda自定义al2运行时,初始化阶段超时

如何找到一个空闲的TPM句柄来保存新的密钥对对象?

通过 Terraform 中的 MapNestedAtribute 进行迭代

使用goroutines在Golang中验证 struct

尽管存在 WaitGroup,Goroutines 似乎被打断了

如何在 `hashicorp / terraform-exec` 中将 `ApplyConfig` 传递给 `tf.Apply()`?

动态 SQL 集 Golang

Go 中的 HTTP 请求验证中间件

将 .gz 文件添加到 tar.gz 文件,但在添加之前解码 gz.输出文件被剪辑(损坏)

为什么在单独的 go routine 中需要 wg.Wait() 和 close() ?

如何在Golang中的差异函数中杀死命令Exec

当 git clone 工作时,Go mod tidy 在私有存储库上失败

如何使路径/不匹配 Golang net/http 中所有其他不匹配的路径