我似乎无法让我的路由正确。我正在使用 Gorilla Mux 并且我正在尝试为我的 angular 应用程序提供服务,所以基本上是我的 index.html,来自任何 url,除了它们以“/foo”开头。
这个有效:
func StaticFileServer(w http.ResponseWriter, r *http.Request) {
http.ServeFile(w, r, config.dir)
}
func main() {
fs := http.Dir(config.dir)
fileHandler := http.FileServer(fs)
router = mux.NewRouter()
router.Handle("/foo/page", PublicHandler(handler(getAll)).Methods("GET")
router.Handle("/foo/page/{id}", PublicHandler(handler(getOne)).Methods("GET")
router.PathPrefix("/{blaah}/{blaah}/").Handler(fileHandler)
router.PathPrefix("/").HandlerFunc(StaticFileServer)
...
}
但是必须有一种比明确声明每条可能的路由更简单的方法,比如这个 PathPrefix("/{blaah}/{blaah}/") 东西......有了这个,任何其他 url 比 /{blaah}/{blaah }/ 返回未找到的 404 页面,而不是 index.html。
所以我想得到所有的东西(静态文件等),只要它们能被找到,但其他的一切都应该返回/public/index.html。
阿波罗的战车
撒科打诨
相关分类