我在获取 Gorilla Mux 库以开始工作时遇到问题。从我阅读的文档和我完成的所有调试中,我似乎无法弄清楚问题是什么。这是我的路由:
文件夹结构:
project_root
|-- main.go
|-- routes
|-- routes.go
|-- user.go
main.go:
package main
import (
"fmt"
"net/http"
"./routes"
)
func main() {
r := routes.CreateRoutes(http.Dir("./content"))
http.Handle("/", r)
err := http.ListenAndServe(fmt.Sprintf("%s:%d", "localhost", 8000), nil)
if err != nil {
fmt.Println("Error: ", err)
}
}
路线/routes.go
package routes
import (
"net/http"
"github.com/gorilla/mux"
)
func CreateRoutes(staticDir http.FileSystem) *mux.Router {
r := mux.NewRouter()
// Serve static pages (i.e. web app)
r.PathPrefix("/").Handler(http.FileServer(staticDir))
// Serve User Pages
createUserRoutes(r)
return r
}
每当我向服务器的根路径(即提供静态内容的路径)发出请求时,服务器都会按预期响应主页面。但是,任何其他调用都会导致 404 响应(我使用 cURL 测试请求)。例如,对http://localhost:8000/user/new的格式错误的请求应该返回 409,但返回 404。如果我期望 201 响应,则相同。
一切看起来都正确,我已经检查了三次,但我无法弄清楚这里的问题是什么。
长风秋雁
相关分类