Bee go -router: когда я использую многоуровневый маршрут, не могу найти правильный файл stati c - PullRequest
0 голосов
/ 11 июля 2020
  1. go версия go1.14 darwin / amd64
  2. bee go 1.12.1
  3. Когда мой URL-адрес всего один уровень, все в порядке

beego.Router("/index", &controllers.HomeController{}, "get:Index")

Но когда мой url больше одного уровня, программа не может найти stati c файл.

beego.Router("/summary/:all",&controllers.SummaryVersionController{})

Вот код контроллера:

pathurl := this.Ctx.Input.Param(":all")
var s string = "'"
pathurl = fmt.Sprintf("%s%s%s",s,pathurl,s)
fmt.Println(pathurl)
table,err:= new(models.JobList).SummaryForVersionData(pathurl)
if err!=nil{
    logs.Error("SummaryVersionController => ", err)
    this.Abort("404")
}
this.Data["Contents"]=table
this.TplName = "600.html"

Вот вывод консоли, когда я пытаюсь ввести URL "http://127.0.0.1: 8080 / summary / 6.0.0"

2020/07/11 19:22:23.554 [D] [server.go:2807]  |      127.0.0.1| 200 |   5.849898ms|   match| GET      /summary/6.0.0   r:/summary/:all
2020/07/11 19:22:23.581 [D] [server.go:2807]  |      127.0.0.1| 404 |    215.983µs| nomatch| GET      /summary/static/assets/css/app.min.css
2020/07/11 19:22:23.590 [D] [server.go:2807]  |      127.0.0.1| 404 |    460.945µs| nomatch| GET      /summary/static/assets/bundles/datatables/datatables.min.css
2020/07/11 19:22:23.590 [D] [server.go:2807]  |      127.0.0.1| 404 |    256.697µs| nomatch| GET      /summary/static/assets/bundles/datatables/DataTables-1.10.16/css/dataTables.bootstrap4.min.css
2020/07/11 19:22:23.593 [D] [server.go:2807]  |      127.0.0.1| 404 |    650.812µs| nomatch| GET      /summary/static/assets/css/style.css

Фактически, программа должна найти файл stati c в / stati c, а не / summary / stati c, не уверен, зачем добавлять сводку строки маршрута.

1 Ответ

0 голосов
/ 03 сентября 2020

Вы должны использовать базовый тег в html head.

  <base href="http://yourhost/">

или вы должны включать активы с абсолютным путем.

<link rel="stylesheet" href="/static/style.css">

, если вы не устанавливаете базовый URL , браузер отправляет запрос на относительный путь.

Также не забудьте установить stati c path.

beego.SetStaticPath("/static","static")
...