我正在使用以下代码来为Angular应用程序提供服务。
package main
import (
"github.com/gorilla/mux"
"log"
"net/http"
)
func main() {
r := mux.NewRouter()
r.PathPrefix("/portals/").Handler(http.StripPrefix("/portals/", http.FileServer(http.Dir("./portals/"))))
r.PathPrefix("/dependencies/").Handler(http.StripPrefix("/dependencies/", http.FileServer(http.Dir("./dependencies/"))))
r.HandleFunc("/registeruser", UserRegistrationHandler)
r.HandleFunc("/deleteuser/{username}", DeleteUserHandler)
http.Handle("/", r)
log.Println("Listening...")
http.ListenAndServe(":8000", r)
}
如果我导航到http://localhost:8000/portals/,则可以使用所有依赖项正确呈现网站。但是http://localhost:8000/portals失败并且找不到404。
同样,如果我导航到http://localhost:8000/portals/#login,它会按预期工作。但如果我导航到http://localhost:8000/portals/login,则会给出404。
我注意到的另一件事是http://localhost:8000/portals/login如果我通过应用程序内的链接(比如登录链接)导航到它,则会有效。但是,如果我在浏览器中键入url并按Enter键,则会显示404。
这里缺少什么部分?我是否错误地处理了静态内容?
答案 0 :(得分:0)
您需要在angularjs中启用html5mode