为了账号安全,请及时绑定邮箱和手机立即绑定

golang二进制文件在gopath src文件夹之外不起作用

golang二进制文件在gopath src文件夹之外不起作用

Go
慕雪6442864 2021-10-18 16:21:37
我有一个使用 gin-gonic 定义的 golang web 应用程序。我已经定义了 /usr/local/goapp 下的 goapp 结构是这样的 -/usr/local/goapp+src+bin+pkg这里是我的 go env -GOPATH - /usr/localGOBIN - /usr/local/ goapp/binGOROOT - /usr/local/go当我在源代码的主文件夹下运行 go build 和 go install 时,我得到了我的二进制文件,我可以运行它并看到当我转到主页 URL 时我的 html 被加载。如果我尝试在 bin 文件夹下运行相同的二进制文件,当我转到主页 URL 时,我看不到 html 正在加载。我发现 404 页面未找到。我在这里错过了什么吗?有没有人遇到过这样的问题?
查看完整描述

1 回答

?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

所有这些 GOPATH、GOROOT 以及当然缺少的 PATH 变量只是说明了如何调用 go 程序本身以及它在哪里搜索模块。但是您告诉我们,您构建并安装了一些 go 程序。

当一个 go 程序构建完成后,实际上就不再需要 go 了。您可以将二进制文件放在您想要的任何位置,甚至是另一台具有相同或至少类似系统的机器上,然后在那里运行该程序。

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

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

通常情况下,如果这样的程序找不到它应该创建、发送、生成的文档,不管怎样,它都会返回代码 404:未找到。

虽然只是猜测,这很可能是您所处的情况,当您使用不同的当前工作目录运行程序时,而不是程序期望其文件所在的工作目录。


查看完整回答
反对 回复 2021-10-18
  • 1 回答
  • 0 关注
  • 171 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信