为了账号安全,请及时绑定邮箱和手机立即绑定

Go + Angular:加载基础 html

Go + Angular:加载基础 html

Go
慕运维8079593 2021-08-23 16:42:24
我正在尝试使用 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 处理。


查看完整回答
反对 回复 2021-08-23
  • 2 回答
  • 0 关注
  • 286 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信