Heroku 资源未找到 404。

5

我们现在遇到一个问题,即在slug编译期间我们的资产没有任何问题。然而,在昨天推送到我们的staging和production应用程序后,我们现在遇到了一个问题,即浏览器提示无法加载资源。

使用浏览器开发工具,我们看到以下错误: 资源加载失败:服务器响应404(未找到): /assets/application-a3b17e738ce8996d058795310e3cd9b4.js

我们决定做的第一件事是回滚我们的代码库到上一个完全功能的heroku push提交。但是在这台机器上我们看到相同的问题,即浏览器无法加载资源。

使用bash,我连接到heroku实例并检查了public/assets目录以确保资源实际存在。它们全部都在那里,并且文件名之前具有正确的哈希码。文件不为空,清单文件看起来很好。 此时我不知道还能尝试什么。我们以前从未遇到过加载资源方面的问题。在heroku push日志中没有任何指示任何错误抛出的迹象。


1
你有没有找到这个问题的答案? - Nathan
尝试关闭所有缓存,浏览器缓存和CDN。 - Chloe
1个回答

4
我遇到了同样的问题。在我的生产gems(在Gemfile中)中包含rails_12factor gem后,问题似乎已经得到解决。在阅读此Heroku支持页面的第一部分后,我发现了这一点:https://devcenter.heroku.com/articles/rails4 引用块: 日志和资产 Heroku将日志视为流,并要求将日志发送到STDOUT。要在Rails 4中启用STDOUT日志记录,可以添加rails_12factor gem。该gem还将配置您的应用程序以在生产中提供资产。要添加此gem,请将其添加到Gemfile中: gem'rails_12factor',group::production 此gem允许您将应用程序更接近于成为12因素应用程序。您可以获取有关如何配置gem记录和资产的更多信息,请阅读rails_12factor README。如果您的应用程序中没有此gem,则在部署时会收到警告,并且您的资产和日志将无法正常工作。
'rails_12factor' gem对rails_serve_static_assets gem和rails_stdout_logging gem具有gem依赖项。基本上,如果您不希望Rails应用程序使用其宝贵的周期来处理请求以仅提供资产,则需要找出其他解决方案,例如CDN:https://devcenter.heroku.com/articles/using-amazon-cloudfront-cdn-with-rails

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接