如何在beego路由器中指定路径参数

时间:2020-03-13 04:35:00

标签: reactjs go react-router beego

我刚开始使用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之类的客户端上不同路径的页面时,该页面应该正常加载。

0 个答案:

没有答案