【问题标题】:Heroku local is not using my latest code. Why?Heroku local 没有使用我的最新代码。为什么?
【发布时间】:2016-03-23 06:50:05
【问题描述】:

我正在尝试让一个非常简单的数据库支持的 golang heroku 应用程序作为一个 hello world 运行。

我的应用程序部署的 Heroku 版本运行良好,如果我在本地手动测试它,它运行良好,但 heroku local 顽固地使用我的旧版本代码。具体来说:

$ heroku local
forego | starting web.1 on port 8080

有效,但意外地提供了旧版本的应用程序。另一方面,这是:

$ go run web.go

还有这个:

$ git push heroku master
Everything up-to-date
$ heroku open

两者都符合我的预期,这是我的代码的最新版本。

这真的让我很困惑。我已阅读所有文档并仔细检查了所有内容的状态,但找不到任何表明正在发生的事情或可能导致它发生的事情。

我的最佳猜测是 heroku local 正在使用未更新的某个地方的已编译 slug。

【问题讨论】:

    标签: git heroku go heroku-toolbelt


    【解决方案1】:

    问题在于 golang 是一种编译语言,heroku local 只是使用最后一次构建,并不会自行启动重新构建。解决方法是记住在运行heroku local之前编译:

    $ go install
    

    如果您使用go run web.go 进行测试,很容易忘记这一点,因为这不需要重新编译,heroku 本身会自动进行构建,因此您可以避免在尝试之前从不运行go install使用heroku local

    (实际上,我在写完整个问题后就想到了这一点,但我想我还是应该发布以供将来参考。)

    【讨论】:

    • 我很感激你发布了这个词。 +1
    猜你喜欢
    • 2014-05-01
    • 2021-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多