Я только начал с 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
, тогда страница должна нормально загружаться.