我需要从
如果我执行以下操作:
有没有一种正确引用该文件的方法,使其在测试和正常程序运行时都能正常工作?
patients.go
引用 patients.json
文件,文件夹结构如下:
如果我执行以下操作:
filepath.Abs("../../conf/patients.json")
go test ./...
来说是可以工作的,但对于 revel run
就会失败。如果我执行以下操作:
filepath.Abs("conf/patients.json")
有没有一种正确引用该文件的方法,使其在测试和正常程序运行时都能正常工作?
.go
文件的路径? - Pablo Fernandez.go
文件了... - icza/proc
,那么可以通过调用os.Readlink()
函数来获取正在执行的程序的位置,该函数针对名为"/proc/self/exe"的符号链接。无论哪种情况,这都不是可移植的;而且,在GNU/Linux系统上,一个正确打包的软件包应该将其二进制文件和“资产”分开,因此这种方法可能没有太多意义。 - kostixmain.AssetsDir
;2)允许下游打包者在构建时使用链接器覆盖字符串类型值,例如:go build -ldflags="-X main.AssetsDir=/usr/share/cool_app/assets"
。OP可以通过研究go help build
和go tool link -h
的输出来了解更多背景信息。 - kostix