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



在将Yeoman应用程序部署到Heroku 后,我收到以下错误

得到http://myapp.herokuapp.com/favicon.ico503(服务不可用)

我有一个最喜欢的图片,随着最喜欢的图像的出现,本地一切都很好。我不知道如何修复这个错误,也不知道为什么会首先导致这个错误。

以下是我的所有代码:https://github.com/dkretsch12/MyHerokuApp
我用以下命令将其推送到Heroku:
git-add
gitcommit-am"仍然被卡住">
gitpush-heroku主

我也遇到过这种情况,对我来说,"503(服务不可用)"错误并不是真正的错误。尝试:heroku logs --app [your-app-name]看看它是否能给你更多的信息。

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

编辑

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

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

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

但这可能不是适合你的解决方案,这取决于你想要的应用程序。我对Grunt或Angular一无所知,所以我在那里帮不了你。我确实发现了这个问题,可能对你有价值。我还建议阅读Heroku开发中心上的文档

在尝试打开Heroku部署的Rails/React应用程序时,我遇到了同样的503服务不可用错误favicon.ico。我被这个bug卡住了至少一个小时,我想这篇文章可能会让我了解如何解决503收藏夹问题。

第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

关于原因的更多信息在这里。

步骤3:在了解了更多信息后,我发现我可以按照heroku文档来了解如何将sqlite3与heroku一起使用,也可以更改DB。我选择将DB更改为postgres,我发现了两个惊人的资源来帮助实现这一点:

如何在部署到heroku之前将rails应用程序数据库从sqlite更改为postgresql。在新的Rails项目中从SQLite更改为PostgreSQL

第4步:这样做之后,我得到了一个500内部服务器错误,再次转到heroku logs -t,发现我的表在heroku上不存在。从那时起,我知道我必须使用以下命令将rails DB迁移到heroku:heroku run bundle exec rails:db migrate。被推到heroku,这就成功了。

TLDR:状态503找不到路径="/faviicon.ico"并不一定意味着问题源于heroku部署的应用程序中缺少favicon.ico。更深入地确定根本原因的方法是使用heroku logs -t

相关内容

最新更新