golang二进制文件在gopath src文件夹

时间:2015-07-01 15:57:09

标签: go

我有一个使用gin-gonic定义的golang web应用程序。我在/ usr / local / goapp下定义了goapp 结构是这样的 -
 在/ usr /本地/ goapp
                 + SRC
                 +斌
                 + PKG
这是我的去环境 - GOPATH - / usr / local
GOBIN - / usr / local / goapp / bin
GOROOT - / usr / local / go

当我运行go build并在源文件夹中的主文件夹下安装时,我得到了我的二进制文件,并且当我转到主页URL时,我能够运行它并看到我的html被加载。 如果我尝试在bin文件夹下运行相同的二进制文件,当我转到主页URL时,我看不到html被加载。我找不到404页面。

我在这里遗漏了什么吗?有没有人遇到过这样的问题?

感谢。

1 个答案:

答案 0 :(得分:1)

所有那些GOPATH,GOROOT以及缺少的PATH变量当然只是说一下如何调用go程序本身以及它搜索模块的位置。但是你告诉我们,你构建并安装了一些go程序。

当建立一个go程序时,实际上不再需要了。您可以将二进制文件放在任何您想要的地方,甚至是另一台具有相同或至少类似系统的计算机,并在那里运行该程序。

当你的程序,你已经构建并安装并且似乎被称为gin-gonic被执行时,你将在某个路径中执行它,也称为当前工作目录(参见getcwd(2)或pwd(1) ))。

我现在只是猜测,在当前的工作目录下,你的htdocs,index.html,以及这个gin-gonic用来创建页面的文件。

通常,如果这样的程序找不到它应该创建,发送,生成等的文档,它将返回代码404:Not found。

虽然只是猜测,但很可能,当你使用不同的当前工作目录运行你的程序时,你所处的情况很可能比程序期望其文档的工作目录。