Получение ошибки 503 при загрузке на heroku с моим приложением nodejs

Последние пару дней я изо всех сил пытался загрузить свое приложение на heroku. Я преодолеваю одно препятствие, а затем встречаю другое. Теперь я получаю следующую ошибку.

 Failed to load resource: the server responded with a status of 503 (Service  Unavailable) /favicon.ico

В журналах я получаю эти сообщения об ошибках.

2018-04-11T08:13:48.238214+00:00 app[web.1]: > rock-paper-scissors@1.0.0 start  /app
2018-04-11T08:13:48.331598+00:00 app[web.1]: Server has started.
2018-04-11T08:13:48.238216+00:00 app[web.1]: 
2018-04-11T08:13:48.238198+00:00 app[web.1]: 
2018-04-11T08:14:46.646952+00:00 heroku[web.1]: State changed from starting to   crashed
2018-04-11T08:14:46.571274+00:00 heroku[web.1]: Error R10 (Boot timeout) ->    Web process failed to bind to $PORT within 60 seconds of launch
2018-04-11T08:14:46.629369+00:00 heroku[web.1]: Process exited with status 137
2018-04-11T09:38:48.218885+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=brianpat-rock-paper-scissors.herokuapp.com request_id=0db40b3c-c918-4a3d-9a4d-f3a5fcf69bc8 fwd="94.174.32.117" dyno= connect= service= status=503 bytes= protocol=https
2018-04-11T09:38:48.541351+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=brianpat-rock-paper-scissors.herokuapp.com request_id=ecf56ae7-84e6-43a0-9a77-3e9f9a7f538f fwd="94.174.32.117" dyno= connect= service= status=503 bytes= protocol=https

Вчера я получал ошибку «Метод запрещен», и теперь я не уверен, перешла она или нет. Не уверен, что это мой конец или это проблема обслуживания heroku? Возможно, мой конец. Я пытался найти ту же ошибку в Stackoverflow, но они не помогли. Любая помощь будет оценена по достоинству.

Первое, что я попробую, - это либо загрузить файл favicon.ico (я думаю, в вашу общую папку), либо удалить ссылку из представления индекса.

Chris G 11.04.2018 12:20

Это могло быть что-нибудь? Я преобразовал некоторые файлы png в приложении в .ico. Как узнать, есть ли на него ссылка в файле index.html?

AltBrian 11.04.2018 12:24

Откройте индексный файл и проверьте <head> на наличие строки <link rel="icon">, которая ссылается на favicon.ico. Убери это.

Chris G 11.04.2018 12:31

На странице index.html нет ссылки на favicon.ico. Я добавил один, но он не отображается локально. <link rel="shortcut icon" type="image/ico" href="image/favicon.ico">

AltBrian 11.04.2018 12:39

Сервер пытается загрузить /favicon.ico, потому что это запрашивается браузером. По какой-то причине ваше приложение вылетает при этом вместо ответа с ошибкой 404 Not found. Не видя исходного кода вашего приложения, все, что мы можем сделать, это безумно гадать.

Chris G 11.04.2018 12:44

Могу ли я показать вам свой исходный код?

AltBrian 11.04.2018 12:45

Вы можете поместить соответствующие части в вопрос или выложить его на github. Кстати, веб-сайт также пытается загрузить ./public/main.js, что приводит к ошибке 404.

Chris G 11.04.2018 12:47

Я обновлюсь и дам ссылку на свой гитхаб.

AltBrian 11.04.2018 12:49

вот ссылка github.com/amidabrian51/Rock_Paper_Scissors

AltBrian 11.04.2018 12:54

я взгляну

Chris G 11.04.2018 12:56

Хорошо, основная проблема - это ваш способ обслуживания файлов. Хотя вы и перехватываете ошибку 404, лучше не полагаться на try/catch. В этом случае fs.exists() - гораздо лучшее решение. Еще лучшим решением является использование существующего решения, такого как express, для обслуживания ваших файлов. Кстати, я почти уверен, что /favicon.ico запрашивается браузером; он хочет поместить его на вкладку, поэтому просто запрашивает его.

Chris G 11.04.2018 13:10

Так что вы предлагаете мне делать сейчас? Если вы не возражаете, я спрошу.

AltBrian 11.04.2018 13:16

Вы можете npm install http-server и использовать require("http-server").createServer().listen(3000); в своем index.js. По умолчанию он будет обслуживать папку public.

Chris G 11.04.2018 13:24

Теперь я получаю следующую ошибку: brianpat-rock-paper-scissors.herokuapp.com didn’t send any data. ERR_EMPTY_RESPONSE

AltBrian 11.04.2018 13:50

Теперь он дает мне следующее в журналах at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=brianpat-rock-paper-scissors.herokuapp.com request_id=71e45c5c-b252-4037-bfb0-d1443534ec3d fwd="94.174.32.117" dyno= connect= service= status=503 bytes= protocol=https

AltBrian 11.04.2018 13:56

Вот что у меня сработало: require("http-server").createServer().listen(process.env.POR‌​T);, затем на heroku, в Настройки -> Переменные конфигурации, добавьте PORT: 8080 Он онлайн здесь: rps-test-so.herokuapp.com (ключ не использует переменную, а правильный порт, я думаю)

Chris G 11.04.2018 14:11

Теперь я получаю следующую ошибку: `` brianpat-rock-paper-scissors.git Не удалось загрузить ресурс: сервер ответил статусом 405 (метод запрещен) '' ARRRGH

AltBrian 11.04.2018 14:21

Это сработало! Большое спасибо, Крис Дж. Не могли бы вы поставить свой ответ выше, и я поддержу его.

AltBrian 11.04.2018 14:25
0
19
1 071
0

Другие вопросы по теме