我正在构建一个 api,它也为我的 React 前端应用程序提供服务,但是在为我的 index.html 提供服务时遇到了问题鉴于它不是真正的 go 模板,我没有使用 html/template。我没有看到在所有未在路由中启动 /api 的页面上为我的应用程序的静态 html 根提供服务的严格方式。除了 gorilla 的 mux,我故意不使用任何 Go 框架我的 handler.go:func Index(w http.ResponseWriter, r *http.Request) { http.FileServer(http.Dir("./views"))}Routes.go:type Route struct { Name string Method string Pattern string HandlerFunc http.HandlerFunc}type Routes []Routevar routes = Routes{ Route{ "Index", "GET", "/", Index, },}路由器import ( "net/http" "github.com/gorilla/mux")func NewRouter() *mux.Router { router := mux.NewRouter().StrictSlash(true) 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(handler) } return router}主要的:package mainimport ( "./server" "log" "net/http")func main() { router := server.NewRouter() log.Fatal(http.ListenAndServe(":8080", router))}目前出现一个空白页面,仅此而已。我的 index.html 位于/views/index.html与可执行文件相关的位置(但我也尝试过与处理程序相关)
1 回答

九州编程
TA贡献1785条经验 获得超4个赞
在 handler.go 中,您的 Index 函数实际上是一个空操作,因为http.FileServer()返回一个 Handler,它永远不会传递 ResponseWriter 或 Request,因此是空白页。
也许尝试这样的事情至少可以通过:
func Index(w http.ResponseWriter, r *http.Request) {
http.FileServer(http.Dir("./views")).ServeHTTP(w, r)
}
- 1 回答
- 0 关注
- 211 浏览
添加回答
举报
0/150
提交
取消