最近发现Revel是一个非常不错的MVC web框架,想尝试一下。 问题是我是 Go 的新手,一切似乎都有点不同。
使用 PHP 时,我只是将文件放入 /var/www/
中文件夹,或者使用一些 IDE,然后我可以打开浏览器并实时测试它们。使用 RoR 或 Node.js 甚至更容易,我只需转到本地项目文件夹(无论在哪里),在终端中运行一个命令并且已经可以在 localhost:3000
上看到结果.
这样,我在本地机器上就有了以下结构:
home
└── mark
└── code
├── php
│ └── my_php_app
└── ruby
└── my_ruby_app
它们都是通过 git 同步的。然后,当我想在我的远程机器上部署时,我只需将它们 pull 入 /var/www/
即可。并设置 Apache2/Nginx
但是我如何使用 Go 应用程序做到这一点? 我在家里的 Linux 机器和 VPS 上都安装了 Go。当我打开 ~/code/go/mygoapp
并尝试使用 revel run
运行它, 它说在 GOPATH
中找不到它.所以,我假设,我需要将我所有的 Go 项目与我的其他项目分开,在 GOPATH
中, 这可能是 /usr/local/go/src/
或 ~/gocode/src/
.
问题是:
如果我想将所有 Go/Revel 项目保留在
go
中,我该怎么办?文件夹以及php
和ruby
在这样的本地机器上:home └── mark └── code ├── go │ └── my_revel_app ├── php │ └── my_php_app └── ruby └── my_ruby_app
以及如何以正确的方式将它们实际部署到我的远程服务器上?
如果我仍然需要为此使用 GOPATH,我该如何命名包?是
GOPATH/src/mygoapp
,GOPATH/src/mark/mygoapp
或GOPATH/src/bitbucket.org/mark/mygoapp
(虽然这个 repo 是私有(private)的)?
我知道,这可能是一个菜鸟问题,但我看不出这里有逻辑。即使是简单的 Go 程序,我也不需要将它们放到 GOPATH 中才能运行。
最佳答案
在包含go源代码的GOPATH
中添加目录(工作区),并符合结构src, pkg, bin
。您可以在 GOPATH
中拥有任意数量的 Go 工作空间。在您的系统上相应地定义变量。您服务器上的 GOPATH
很可能与您本地机器上的不同。
您可以使用git
来共享您的项目。在github或者bitbucket上创建账号,同步。
您的 GOPATH
指向工作区。第一个用于存储 go get
包。
关于git - 在 Go 中编写代码的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34316666/