Wol*_*ivy 5 git heroku go heroku-toolbelt
我正在尝试获得一个非常简单的数据库支持的golang heroku应用程序,它可以用作世界。
我的应用程序的已部署Heroku版本运行良好,如果我在本地手动测试它,则可以正常运行,但是heroku local顽固地使用了旧版本的代码。特别:
$ heroku local
forego | starting web.1 on port 8080
Run Code Online (Sandbox Code Playgroud)
可以,但是意外地提供了较旧版本的应用程序。另一方面,这是:
$ go run web.go
Run Code Online (Sandbox Code Playgroud)
和这个:
$ git push heroku master
Everything up-to-date
$ heroku open
Run Code Online (Sandbox Code Playgroud)
两者都符合我的期望,这是我代码的最新版本。
这真让我感到困惑。我已经阅读了所有文档,并仔细检查了所有内容的状态,找不到任何指示正在发生或可能导致此情况的内容。
我最好的猜测是heroku local,在未更新的地方使用编译的段塞。
问题在于,golang 是一种编译语言,heroku local仅使用最后一次构建,而不会自行启动重建。解决方法是记住在运行之前进行编译heroku local:
$ go install
Run Code Online (Sandbox Code Playgroud)
如果您用于测试,很容易忘记这一点go run web.go,因为这不需要重新编译,并且 heroku 本身会自动进行构建,因此您可以go install在尝试使用之前永远不会运行heroku local。
(实际上,我在写完整个问题后就想出了这一点,但我认为无论如何我都应该发布以供将来参考。)
| 归档时间: |
|
| 查看次数: |
276 次 |
| 最近记录: |