在尝试打开 Heroku 部署的 Rails/React 应用程序时,我遇到了相同的 503 服务不可用错误 favicon.ico。我被这个错误困住了至少一个小时,并认为这篇文章可能会提供有关我如何解决 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 文档了解如何将 sqlite3 与 heroku 一起使用,或者更改数据库。我选择将 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。