未找到 Heroku 资产 404

2023-11-27

我们正在处理一个问题,即我们的资产在 slug 编译期间编译时没有任何问题。然而,从昨天开始,在推送到我们的暂存和生产应用程序后,我们现在遇到了浏览器指示资产由于某种原因无法加载的问题。

使用浏览器开发工具我们看到此错误: 无法加载资源:服务器响应状态为 404(未找到): /assets/application-a3b17e738ce8996d058795310e3cd9b4.js

我们决定做的第一件事是将我们的代码库回滚到最后一次提交(这是在之前的 heroku 推送中功能齐全的提交)。浏览器无法加载资源也存在同样的问题。

我使用 bash 连接到 heroku 实例并检查 public/assets 目录以确保资产确实存在。它们的文件名前面都有正确的哈希码。这些文件不为空,并且清单文件看起来不错。 我不确定此时还可以尝试什么。到目前为止,我们在加载资产方面从未遇到过问题。 Heroku 推送日志中没有任何内容表明任何内容在任何时候都会引发错误。


我遇到过同样的问题。包括之后似乎对我来说是固定的rails_12factor我的生产 gem 中的 gem(在我的 Gemfile 中)。我在阅读 Heroku 支持页面的第一部分后发现了这一点:https://devcenter.heroku.com/articles/rails4

日志记录和资产

Heroku 将日志视为流,并要求将日志发送到 STDOUT。要在 Rails 4 中启用 STDOUT 日志记录,您可以添加rails_12factor gem。此 gem 还将配置您的应用程序以在生产中提供资产。要添加此 gem,请将其添加到您的 Gemfile 中:

gem 'rails_12factor',组::生产

这个 gem 可以让您的应用程序更接近 12factor 应用程序。您可以阅读rails_12factor README,获取有关gem 如何配置日志记录和资产的更多信息。如果您的应用程序中不存在此 gem,您将在部署时收到警告,并且您的资产和日志将无法运行。

'rails_12factor' gem 具有 gem 依赖项rails_serve_static_assets宝石和rails_stdout_logging。基本上,如果您不希望 Rails 应用程序使用其宝贵的周期来处理请求只是为了提供资产,那么您需要找出不同的解决方案,例如 CDN:https://devcenter.heroku.com/articles/using-amazon-cloudfront-cdn-with-rails

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

未找到 Heroku 资产 404 的相关文章

随机推荐