Go 如何定义包级文件?

Go 如何定义包级文件?,go,Go,我在包通知中有一个模板 /notifications /html/notify.tpl 问题是,如果我从不同的路径/包调用此包的函数,它将无法再找到该文件,因为程序假定该路径属于正在调用的包。 e、 g 快跑,快跑 open html/notify.tpl: no such file or directory 你没有 您可以通过配置提供路径、使用众所周知的完全限定路径、使用相对于您的工作目录的路径(不推荐)或三者的组合。我认为在切换机器时,这将破坏测试。我正在考虑使用filepathpack

我在包
通知中有一个模板

/notifications
/html/notify.tpl
问题是,如果我从不同的路径/包调用此包的函数,它将无法再找到该文件,因为程序假定该路径属于正在调用的包。 e、 g

快跑,快跑

open html/notify.tpl: no such file or directory
你没有


您可以通过配置提供路径、使用众所周知的完全限定路径、使用相对于您的工作目录的路径(不推荐)或三者的组合。

我认为在切换机器时,这将破坏测试。我正在考虑使用
filepath
package+
$GOPATH
env变量,尽管我还没有弄清楚如何使用它。嗯,
$GOPATH/src+import/path
是一个众所周知的完全限定路径。没有理由不在它周围放一些简单的逻辑来进行测试和部署。出于某些原因,它似乎找不到$GOPATH路径…说它不存在。知道为什么吗?如果我从命令行(
ls
)尝试,则路径已设置且有效,因此我只能假设
err=filepath.Walk($GOPATH),changePath)
`lstat$GOPATH:没有这样的文件或目录`
filepath.Walk没有在shell中执行任何操作,
$GOPATH
是一个环境变量-使用
os.Getenv(“GOPATH”)
.Thansk!我最终选择了os.ExpandEnv
open html/notify.tpl: no such file or directory