我正在尝试使用 Angular 在 Go 中编写一个应用程序。我不确定我的概念是否正确,但基本上我应该提供一个简单的 html,它加载 angular 和应用程序 (js) 本身,然后其余部分由 ajax 请求处理。我不知道的是如何在每个路径上的每个非 ajax 请求上提供 html 文件?我想使用 Gorilla mux,但我不知道如何做到这一点。这甚至是正确的方向吗?
2 回答
翻翻过去那场雪
TA贡献2065条经验 获得超14个赞
对于不是任何已知 url 的每个请求,您应该发送 index.html - 或任何您的基本 angular 应用程序文件。
Gorilla/mux 有一个 NotFoundHandler,它是所有其他路由都不匹配的处理程序。您可以像这样为它分配您自己的处理程序:
大猩猩/多路复用器的解决方案是:
func main() {
r := mux.NewRouter()
r.HandleFunc("/foo", fooHandler)
r.NotFoundHandler = http.HandlerFunc(notFound)
http.Handle("/", r)
}
而 notFound 是:
func notFound(w http.ResponseWriter, r *http.Request) {
http.ServeFile(w, r, "static/index.html")
}
假设您的基本文件在 static/index.html :) 中。
现在,所有不是任何其他请求的请求(因此,在该设置中 - 不是路由中定义的 ajax 调用)将提供带有 url 的索引文件,该 url 可以由 ngRoute 或 ui-router 处理。
- 2 回答
- 0 关注
- 286 浏览
添加回答
举报
0/150
提交
取消