2 回答

TA貢獻(xiàn)1900條經(jīng)驗(yàn) 獲得超5個(gè)贊
當(dāng)您通過(guò)heroku部署應(yīng)用程序時(shí),它不允許您指定端口號(hào)。
換句話(huà)說(shuō),您不能將 Web 服務(wù)的端口號(hào)指定為8000或其他,heroku 在運(yùn)行時(shí)決定端口號(hào)。
因此,您不能使用以下代碼:
log.Fatal(http.ListenAndServe(":8000", router))
您可以做的是獲取heroku 的運(yùn)行時(shí)端口。
簡(jiǎn)而言之,只需使用以下代碼:
log.Fatal(http.ListenAndServe(":" + os.Getenv("PORT"), router))

TA貢獻(xiàn)1841條經(jīng)驗(yàn) 獲得超3個(gè)贊
您的應(yīng)用程序需要偵聽(tīng)所有網(wǎng)絡(luò)連接。如果它只偵聽(tīng)本地主機(jī),heroku 的進(jìn)程觀察器將無(wú)法檢測(cè)到您綁定了端口,也無(wú)法向您的應(yīng)用程序發(fā)送請(qǐng)求。
這意味著而不是:
http.ListenAndServe("127.0.0.1:"+port, nil)
您需要致電:
http.ListenAndServe(":"+port, nil)
另請(qǐng)參閱 Heroku 開(kāi)始使用 Go 應(yīng)用程序:https : //github.com/heroku/go-getting-started/blob/master/cmd/go-getting-started/main.go#L27
- 2 回答
- 0 關(guān)注
- 212 瀏覽
添加回答
舉報(bào)