将Yeoman应用程序部署到Heroku后出现以下错误
获取http://myapp.herokuapp.com/favicon.ico 503(服务不可用)
我有一个favicon图像,一切都在本地运行良好,出现了favicon图像。我不确定如何解决此错误或为什么它首先是由它引起的。
以下是我的所有代码:https://github.com/dkretsch12/MyHerokuApp
然后我用以下命令将它推送到Heroku:
git add。
git commit -am“仍然卡住”
git push heroku master
答案 0 :(得分:2)
我也碰到了这个,对我来说,结果是'503(服务不可用)'错误不是真正的错误。
尝试:
heroku logs --app [your-app-name]
看看它是否能为您提供更多信息。
在我的情况下,Heroku正在寻找我没有指定的npm启动脚本,但是Heroku需要它。 看看你的package.json我看到你也没有它,所以这可能是开始的地方。
修改强>
我认为此错误的根本原因是默认情况下Heroku期望在后台运行Web服务器或某种可执行文件。这是必需的,否则将无法处理传入的请求。所以它必须由程序员提供,安装后Heroku将通过npm start
或Procfile中指定的内容运行它。
我的情况无论如何我需要一个网络服务器,所以我刚创建了一个server.js模块,我在其中实现了一个小型快递应用程序。然后在package.json中我指定了:
"scripts": {
"start": "node server.js",
...
},
但这可能不适合您,这取决于您对应用的需求。我对Grunt或Angular一无所知,所以我无法帮助你。我找到了this question,这可能对你有价值。我还建议您阅读Heroku Dev Center
上的文档答案 1 :(得分:0)
在尝试打开Heroku部署的Rails / React应用程序时,我有相同的503服务不可用错误favicon.ico。我被困在这个bug上至少一个小时,并认为这篇文章可以提供我如何解决503 favicon问题的见解。
步骤1:我尝试在我的rails应用程序中找到一个favicon.ico文件,尝试创建我自己的favicon.ico文件,并将所述文件放在根目录和其他目录中。我得到了同样的错误......
步骤2.我在终端中运行了以下内容:heroku logs -t
,向上滚动,发现实际错误是Heroku无法支持gem sqlite3
。
An error occurred while installing sqlite3 (1.3.13), and Bundler cannot
remote: continue.
remote: Make sure that `gem install sqlite3 -v '1.3.13'` succeeds before bundling.
remote:
remote: In Gemfile:
remote: sqlite3
remote: !
remote: ! Failed to install gems via Bundler.
remote: ! Detected sqlite3 gem which is not supported on Heroku:
remote: ! https://devcenter.heroku.com/articles/sqlite3
有关here原因的详细信息。
步骤3:了解更多信息后,我发现我可以按照heroku文档来了解如何在heroku中使用sqlite3,或者更改数据库。我选择将DB更改为postgres,我找到了两个惊人的资源来帮助它:
how to change your rails app database from sqlite to postgresql before deploying to heroku. Change from SQLite to PostgreSQL in a fresh Rails project
步骤4:执行此操作后,我收到500内部服务器错误,再次转到heroku logs -t
,发现我的表在heroku上不存在。从那里,我知道我必须使用以下命令将rails DB迁移到heroku:heroku run bundle exec rails:db migrate
。推到了heroku,这就行了。
TLDR:状态503无法找到path =“/ favicon.ico”并不一定意味着该问题源于heroku部署应用中缺少的favicon.ico。确定根本原因的更有见地的方法是使用heroku logs -t
。