[beego]生成异常的路由文件commentsRouter__Users_xxx_xxx.go

2024-01-16 136 views
6

| \ | |/ / __ | \ / \ / \ | |/ /| /| / ___/ \| ___| v2.0.2

├── Beego : Beego is not installed. Please do consider installing it first: https://github.com/beego/beego/v2. If you are using go mod, and you don't install the beego under $GOPATH/src/github.com/astaxie, just ignore this. ├── GoVersion : go1.16.3 ├── GOOS : darwin ├── GOARCH : amd64 ├── NumCPU : 8 ├── GOPATH : /Users/liuenmeng/go ├── GOROOT : /usr/local/go ├── Compiler : gc └── Date : Thursday, 6 May 2021

  1. 问题表现: image 新公司项目是用beego写的,我查资料发现beego项目启动时会自动生成路由文件,但是我把项目拷贝下来启动时又按照我的项目路径生成了一份新的文件,请问这个问题该如何解决呢,需要我修改项目路径吗?

回答

5

使用bee run启动项目时是正常的,但是使用go run 项目 的时候就会出现上述的情况,是不是两个命令检索的路径不一样,还请大佬们给解下惑

2

这的确是一个 beego 生成路由不太好的地方。目前的生成路径,是依赖于本地路径的。当你执行bee run的时候,不会有问题,是不是因为你指定了runmode? 注解路由只会在runmode=dev的时候生成。你可以在不想生成的时候,暂时性把runmode改为test或者别的。

我们已经在develop分支上将路由生成挪到了bee命令,以提升用户体验。你可以看 #4486

6

嗯,在本地开发时会指定runmode=dev,比较奇怪的是同样在指定dev的情况下,bee rungo run 文件名两个指令生成的文件名不同。 举个例子,bee run生成的文件名是commentsRouter_controllers_xxxx.go; 而go run 文件名生成的是commentsRouter_________________________Users_liuenmeng_go_src_projectname_controllers_xxxx.go。 所以我想了解下,两个指令生成注解路由文件时,文件的命名规则是怎样的,这个在源码中有体现吗,或者说我们自己能否修改这个文件的命名规则呢? 不然的话,每次在本地开发时都只能使用bee run命令,万一在开发环境下不能使用bee run命令,就无法生成最新的注解路由了

8

其实按照道理,它们应该都生成一样的文件名字的。因为它们的生成名字的逻辑是一样的。因为它会使用前缀 + 本地路径来组合。你可以在 web 模块下的 hook.go 里面看到对应的代码。

1

好的,等有新的发现我再和您反馈