Итак, у меня возникла проблема, когда я могу работать только с моими конечными точками API или моими статическими файлами. Я использую gorilla/mux в качестве маршрутизатора, и, возможно, это как-то связано с его настройкой.
У меня есть четыре файла, которые, как мне кажется, имеют значение в этой ситуации:
main.go
func main() {
envVars()
router := NewRouter()
log.Fatal(http.ListenAndServe(":8080", router))
}
router.go
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
}
routes.go
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
Обновлять
Я нашел этот источник. Это похоже на то, через что я прохожу.