微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

高龙角2

我开始尝试使用Go和Angular2,但我有一个奇怪的问题..我想我只是错过了一个细微的细节,但我无法理解.

我正在使用https://github.com/julienschmidt/httprouter作为路由器Go …现在用Angular2,我应该能够复制&将URL粘贴到浏览器中,Angular应该处理相应的路由,对吧?

我有一个“/登录”路由.如果通过前端访问路由,则可以使用该功能….但是如果我在浏览器中输入“mypage.com/login”,则获取404.

去路由基本上只是做

router.NotFound = http.FileServer(http.Dir("./public"))

它适用于“/”路由,但不适用于任何其他路由.这似乎是正确的.但是如何正确设置路由,所以Angular2处理所有路由?

问候

这是我正在使用的标准Go库,路由工作很棒.

查看Adapt function here

// Creates a new serve mux
mux := http.NewServeMux()

// Create room for static files serving
mux.Handle("/node_modules/",http.StripPrefix("/node_modules",http.FileServer(http.Dir("./node_modules"))))
mux.Handle("/html/",http.StripPrefix("/html",http.FileServer(http.Dir("./html"))))
mux.Handle("/js/",http.StripPrefix("/js",http.FileServer(http.Dir("./js"))))
mux.Handle("/ts/",http.StripPrefix("/ts",http.FileServer(http.Dir("./ts"))))
mux.Handle("/css/",http.StripPrefix("/css",http.FileServer(http.Dir("./css"))))

// Do your api stuff**
mux.Handle("/api/register",util.Adapt(api.RegisterHandler(mux),api.GetMongoConnection(),api.CheckEmptyUserForm(),api.EncodeUserjson(),api.ExpectBody(),api.ExpectPOST(),))
mux.HandleFunc("/api/login",api.Login)
mux.HandleFunc("/api/authenticate",api.Authenticate)

// Any other request,we should render our SPA's only html file,// Allowing angular to do the routing on anything else other then the api    
// and the files it needs for itself to work.
// Order here is critical. This html should contain the base tag like
// <base href="/"> *href here should match the HandleFunc path below 
mux.HandleFunc("/",func(w http.ResponseWriter,r *http.Request) {
    http.ServeFile(w,r,"html/index.html")
})

原文地址:https://www.jb51.cc/angularjs/140732.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐