所以我遇到了一个问题,我只能让我的 API 端点工作或我的静态文件工作。我使用 gorilla/mux 作为我的路由器,它可能与配置有关。
我有四个文件,我认为在这种情况下很重要:
main.go
func main() {
envVars()
router := NewRouter()
log.Fatal(http.ListenAndServe(":8080", router))
}
路由器
func NewRouter() *mux.Router {
// create new router
router := mux.NewRouter()
for _, route := range routes {
var handler http.Handler
handler = route.HandlerFunc
handler = Logger(handler, route.Name)
router.
Methods(route.Method).
Path(route.Pattern).
Name(route.Name).
Handler(route.HandlerFunc)
}
return router
}
路线
var routes = Routes{
Route{
// TODO: Find way to render static file
"Index",
"GET",
"/",
Index,
},
Route{
"PostIndex",
"GET",
"/api/posts",
PostIndex,
},
Route{
"PostCreate",
"POST",
"/api/posts",
PostCreate,
},
}
handlers.go
func Index(w http.ResponseWriter, r *http.Request) {
// TODO: Something to render html file
}
通过研究,我认为我可以使用子路由器,但似乎应该有更好的方法来做到这一点。对于我已经实现的所有其他路由,但是为了呈现 html 文件,我不确定该方法中会放什么。
查看整个项目,请访问:https : //github.com/nicholasrucci/blog
沧海一幻觉
森栏
相关分类