Как настроить сервер Go на совместимость с AngularJS html5mode?

0

Я использую julienschmidt/httprouter вместе с http.FileServer.

Что-то вроде этого:

func main() {
    router := httprouter.New()
    router.NotFound = http.FileServer(http.Dir("/srv/www/public_html"))
    router.GET("/api/user/:id", getUserbyId)
    log.Fatal(http.ListenAndServe(":80", router))
}

Поэтому, если маршрут не найден, просто откройте их из корневого каталога "/"

Но это не работает должным образом. В nginx я делаю это так

location / {
        autoindex on;
        try_files $uri $uri/ /index.html =404;
}

Проверьте, есть ли какие-либо файлы в указанном URL-адресе, если нет, то дайте им /index.html

Как я могу сделать сервер совместимым с AngularJS html5mode?

Теги:
go

1 ответ

1

Если маршрут не найден, добавьте

router.GET("/", Yourfunction)

и ваша функция как,

func Yourfunction(res http.ResponseWriter, req *http.Request) {
    file, _ := ioutil.ReadFile("/srv/www/public_html")
    t := template.New("")
    t, _ = t.Parse(string(file))

    t.Execute(res, nil)
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню