我有一个使用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页面。
我在这里遗漏了什么吗?有没有人遇到过这样的问题?
感谢。
答案 0 :(得分:1)
所有那些GOPATH,GOROOT以及缺少的PATH变量当然只是说一下如何调用go程序本身以及它搜索模块的位置。但是你告诉我们,你构建并安装了一些go程序。
当建立一个go程序时,实际上不再需要了。您可以将二进制文件放在任何您想要的地方,甚至是另一台具有相同或至少类似系统的计算机,并在那里运行该程序。
当你的程序,你已经构建并安装并且似乎被称为gin-gonic被执行时,你将在某个路径中执行它,也称为当前工作目录(参见getcwd(2)或pwd(1) ))。
我现在只是猜测,在当前的工作目录下,你的htdocs,index.html,以及这个gin-gonic用来创建页面的文件。
通常,如果这样的程序找不到它应该创建,发送,生成等的文档,它将返回代码404:Not found。
虽然只是猜测,但很可能,当你使用不同的当前工作目录运行你的程序时,你所处的情况很可能比程序期望其文档的工作目录。