저는 Angularjs 프론트 엔드를 서비스하기 위해 Go 백엔드를 시도하는 새로운 Gopher이며 API도 제공합니다.Go + 각도 ui-router
이것은 내가 지금까지 가지고있는 것입니다.
package main
import (
"github.com/gorilla/mux"
"log"
"net/http"
)
func main() {
rtr := mux.NewRouter()
srtr := rtr.PathPrefix("/api").Subrouter()
srtr.HandleFunc("/hello", hello).Methods("GET")
rtr.PathPrefix("/").Handler(http.FileServer(http.Dir("./static/")))
http.Handle("/", rtr)
log.Println("Listening...")
http.ListenAndServe(":3000", nil)
}
func hello(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("Hello World"))
}
모든 것이 정상적으로 작동합니다. /api/hello
"Hello World"가 반환되고 /
으로 가면 index.html
이됩니다. 그러나 각도 ui-router를 사용하려고하므로 모든 등록되지 않은 경로를 각도로 전송하여 각도 ui-router가 처리 할 수 있도록 go 서버가 필요합니다.
예 : 지금 /random
으로 가면 임의 번호가 ./static
인 파일이 없으므로 404가 반환됩니다. 하지만 내가 원하는 것은 Angular에 요청을 전달하여 ui-router가 처리 할 수 있습니다. /random
gorilla/mux 문서에 따라 맞춤 404 처리기를 설정할 수 있습니다. http://www.gorillatoolkit.org/pkg/mux#Router - 귀하의 경우에는 모든 항목을 직접 지정하도록 설정할 수 있습니다. -'/'또는 유사한 경로 (즉, http.Redi rect (w, r, "/", 302)') – elithrar