我刚开始使用Go,并且我在项目中使用beego + react。这是用于运行应用程序的步骤。
1. npm run build
来构建React应用。
2.在beego app.conf中为ViewPath
指定构建目录
3.使用beego.SetStaticPath("/static", "build/static")
添加静态路径
4.创建一个go二进制文件并启动它。
我面临的问题是,如果我指定类似/test
的路径,则页面刷新可以正常工作;但是,如果我指定/ test /:id,则带有链接的重定向有效,但是当我刷新页面时,它无法加载。
浏览器上的错误表明刷新后,它试图从/ test / static而不是/ static加载资源。
这是React Router的示例代码。
.
.
.
<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>
.
.
这是beego的代码段
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
之类的客户端上不同路径的页面时,该页面应该正常加载。