Rumah >pembangunan bahagian belakang >Golang >Mengapa Apl My Go Berjaya Dibina pada Heroku Tetapi Gagal dengan 'Ralat Aplikasi'?
Menggunakan Apl Golang pada Heroku: Bina Berjaya tetapi Ralat Aplikasi
Percubaan awal untuk menggunakan aplikasi GoLang ke Heroku menggunakan sokongan Godep mengakibatkan binaan yang berjaya tetapi "Ralat Aplikasi" apabila mengakses titik akhir aplikasi. Untuk menyelesaikan masalah ini, mari kita mendalami masalah dan penyelesaiannya.
Ikhtisar Masalah:
Apl yang digunakan gagal bertindak balas apabila mengakses titik akhirnya (mis., '/ '). Log Heroku menunjukkan ralat yang menyatakan bahawa "Proses web gagal untuk mengikat $PORT."
Penyelesaian:
Heroku memerlukan aplikasi untuk mengikat pelayan web mereka ke port ditentukan oleh pembolehubah persekitaran PORT. Walau bagaimanapun, kod aplikasi pada masa ini memulakan pelayan pada port 9000.
Untuk menyelesaikan masalah ini, pelayan aplikasi harus dimulakan pada PORT yang ditentukan oleh Heroku. Begini cara untuk melakukannya:
import "os" func main() { // ... (your existing code) // Get the port from the PORT environment variable, or default to 9000 if not set port := os.Getenv("PORT") if port == "" { port = "9000" // Default port if not specified } // Start the server on the specified port err := grace.Serve(":" + port, context.ClearHandler(http.DefaultServeMux)) // ... (your existing code) }
Dengan mengikat pada port yang betul, aplikasi tidak lagi akan menghadapi ralat "Boot timeout" dan akan dapat menyampaikan permintaan dengan jayanya pada kedua-dua port HTTP dan HTTPS melalui Heroku's pintu masuk.
Atas ialah kandungan terperinci Mengapa Apl My Go Berjaya Dibina pada Heroku Tetapi Gagal dengan 'Ralat Aplikasi'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!