高龙角2

前端之家收集整理的这篇文章主要介绍了高龙角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")
})

猜你在找的Angularjs相关文章