【问题标题】:heroku assets not found 404找不到heroku资产404
【发布时间】:2013-08-19 21:26:18
【问题描述】:

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

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

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

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

【问题讨论】:

  • 你找到这个问题的答案了吗?
  • 尝试关闭所有缓存、浏览器缓存和 CDN。

标签: heroku assets


【解决方案1】:

我有同样的问题。在我的生产宝石(在我的 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',组::生产

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-22
    • 1970-01-01
    • 2016-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-10
    • 1970-01-01
    相关资源
    最近更新 更多