Как указать параметры пути в роутере bee go - PullRequest
0 голосов
/ 13 марта 2020

Я только начал с Go, и я использую bee go + реакции для моего проекта. Вот шаги, используемые для запуска приложения. 1. npm run build для сборки приложения React. 2. Указание каталога сборки для ViewPath в bee go app.conf 3. Добавление stati c path с beego.SetStaticPath("/static", "build/static") 4. Создание двоичного файла go и его запуск. Проблема, с которой я сталкиваюсь, заключается в том, что, если я укажу путь, например /test, то страница refre sh будет работать нормально, однако, если я укажу / test /: id, перенаправление со ссылкой будет работать, но когда я обновлю sh страницу не удается загрузить. Ошибка в браузере показывает, что в refre sh он пытается загрузить ресурсы из / test / stati c вместо / stati c. Вот пример кода для реагирующего маршрутизатора.

      .
      .
      .
      <Switch>
                <Route path="/" render={() => <Redirect to="/login" />} exact></Route>
                <Route path="/login" component={Login} />
                <Route path="/test" component={TestComponent} />
                <Route path="/test/:id" component={TestIdComponent} />
      </Switch>
      .
      .

А вот фрагмент кода для пчелы go

func init() {
    beego.SetStaticPath("/static", "build/static")
    beego.Router("/", &controllers.MainController{})
    beego.Router("/login", &controllers.MainController{})
    beego.Router("/test", &controllers.MainController{})
    // this doesn't work, gives 404 on reload
    beego.Router("/test/:id", &controllers.MainController{})

    // these are API paths to get/post the data with axios
    beego.Router("/api/v1/login", &controllers.LoginController{})
    beego.Router("/api/v1/testData", &controllers.TestController{})

}
.
.
.

// and Main Controller

package controllers

import (
    "github.com/astaxie/beego"
)

type MainController struct {
    beego.Controller
}

func (c *MainController) Get() {
    c.TplName = "index.html"
}

Я ожидаю, когда мы перезагрузим страницу с разными путями на клиент вроде /test или /test/abc, тогда страница должна нормально загружаться.

...