先明确golang中几个参数的含义 之前理解错误了导致自己在写路径时出现了一些问题困惑了好久 特此记录
os.Args[0] 这个参数 并不是什么项目执行路径 获取的是命令行执行语句的第一句 以空格为分隔符 与项目执行路径无丝毫关系 --- 之前理解错了真惭愧啊
os.Getwd() 获取的是运行时你当前所在的路径
比如在/etc 目录下 运行/usr/main文件 最终通过Getwd获取到的值是 /etc
golang中的相对路径就是根据这个执行路径来相对的
这也就解释了我 go run 和 idea 启动 还有 supervisor启动 却经常找不到资源的原因 因为所在的执行路径都不一定是相同的自然会这样
所以 一般我现在的做法是 如果是go run 直接到目录地下go run
如果是 idea 和 supervisor启动 则是在命令行 多添加一个项目路径参数
有疑问加站长微信联系(非本文作者)