Yeoman 应用程序部署到 Heroku 时出错

Error when Yeoman app deployed to Heroku

将我的 Yeoman 应用程序部署到 Heroku 后出现以下错误

GET http://myapp.herokuapp.com/favicon.ico 503(服务不可用)

我有一个网站图标图像,在本地运行一切正常,出现了网站图标图像。我不确定如何解决此错误或首先导致此错误的原因。

这是我的全部代码:https://github.com/dkretsch12/MyHerokuApp
我使用以下命令将其推送到 Heroku:
git 添加 .
git commit -am "still stuck"
git 推送 heroku 大师

我也 运行 参与其中,对我来说,“503(服务不可用)”错误并不是真正的错误。 尝试: heroku logs --app [your-app-name] 看看它是否能为您提供更多信息。

在我的例子中,Heroku 正在寻找 npm 启动脚本,我没有指定,但 Heroku 需要它。 看看你的 package.json 我发现你也没有,所以这可能是开始的地方。

编辑

我认为此错误的根本原因是默认情况下 Heroku 期望网络服务器或某种可执行文件在后台 运行ning。它是必需的,因为否则将无法处理传入的请求。所以它必须由程序员提供,并且在安装 Heroku 之后将 运行 它,通过 npm start 或 Procfile 中指定的内容。

我的情况是我无论如何都需要一个网络服务器,所以我刚刚创建了一个 server.js 模块,我在其中实现了一个小型 express 应用程序。然后在 package.json 我指定:

"scripts": { "start": "node server.js", ... },

但这可能不是适合您的解决方案,这取决于您对应用的需求。我对 G运行t 或 Angular 一无所知,所以我无法在这方面为您提供帮助。我确实找到了 which may be of value to you. I also recommend reading the docs on Heroku Dev Center

在尝试打开 Heroku 部署的 Rails/React 应用程序时,我遇到了相同的 503 服务不可用错误 favicon.ico。我被这个 bug 困扰了至少一个小时,并且认为这个 post 可能会提供有关我如何解决 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 数据库迁移到 heroku:heroku run bundle exec rails:db migrate。推送到 heroku 就成功了。

TLDR:状态 503 unable to find path="/favicon.ico" 并不一定意味着问题源于 heroku 部署的应用程序中缺少 favicon.ico。确定根本原因的更有见地的方法是使用 heroku logs -t.