我有一个具有以下结构的Go项目,并且我正在努力读取位于我项目中的配置文件,我需要读取config yaml
(位于根项目中),并且应该在< sub root directory
下的“ strong> other package ”,我得到了找不到
myproject
- config.yaml
- cmd
--com
---ftp
----fs.go
在fs.go
里面,我需要阅读config.yaml
并没有成功。我尝试os.Getwd
以及ex, err := os.Executable()
和"../../../"
都没有成功,知道吗?
@VonC-建议使用https://github.com/gobuffalo/packr
,这可以帮助我猜测,但是问题是我需要在fs.go
文件中调用它,并且需要将其作为参数 from < / strong> main.go
文件,有没有更好的方法?因为我需要在许多函数中传递此参数...
viper
能帮上忙吗? https://github.com/spf13/viper
我的程序是CLI
程序,它将用作bin
答案 0 :(得分:-1)
如果二进制文件内置于GOPATH/bin
中,而源代码位于GOPATH/src
中,则相对路径将是(在运行时)../src/myproject
。
但是更干净的方法是将该文件嵌入到二进制文件中。
例如参见gobuffalo/packr
。