【问题标题】:Asset pipeline broken after pushing to heroku - rails 3?推送到heroku-rails 3后资产管道中断?
【发布时间】:2011-12-25 11:54:35
【问题描述】:

我不知道这次发生了什么不同 - 我的本地环境运行良好。我的 heroku 应用运行良好。我推送了一些代码,现在似乎资产管道在我的 heroku 应用程序中损坏了?

/assets/all.css 和 /assets/application.js 现在都出现产品“未找到”错误。

有什么可能导致此问题或我如何解决此问题的想法吗?

明确一点 - 我的应用昨天运行良好。我没有更改资产管道的配置。

【问题讨论】:

  • 你是推竹子还是雪松栈?
  • 在命令行调用heroku stack
  • 迁移到 cedar 堆栈的任何选项?资产管道需要 cedar 堆栈才能工作:devcenter.heroku.com/articles/rails31_heroku_cedar
  • 是新的吗?这是昨天的工作......
  • 您从昨天起有没有更改任何资产?也许一些样式表或图像?然后你必须在推送到heroku之前运行rake assets:precompile

标签: ruby-on-rails ruby-on-rails-3 heroku


【解决方案1】:

正如 ream88 所说,您需要 cedar 堆栈才能使用 Asset Pipeline。您需要使用 --stack cedar 选项创建一个新的 heroku 项目并稍微修改一下您的 gemfile

我有一个关于这个主题的blog post。如果不需要,可以跳过指南针/引导程序。

【讨论】:

  • 我不明白这与昨天的工作有什么关系......我没有编辑有关资产管道的配置,那么怎么可能改变呢?跨度>
  • 说实话,我不知道。我很惊讶你的应用程序能正常工作。开始使用 3.1 的时候,我花了半天时间试图让它和竹栈一起工作,最后我还是放弃了,迁移到了雪松。
  • 但是您是否修改了任何资产文件?因为如果您这样做了,通常在生产模式下会发现 none 的资产。 Rails 在文件名的末尾添加了一个摘要,一些资产依赖于其他资产。最坏的情况是更改单个文件会导致更改所有资产文件名。
  • 是的 - 我确实修改了一些 CSS 和 JS 文件。现在都没有找到。因此,如果所有资产名称都更改了, 是否仍然有效?
  • 必须再次编译资产。这是 cedar 堆栈的优势,因为它会在每次部署后为您执行此任务。当然你不需要提交public/assets中的资产。
【解决方案2】:

为了将来参考,这显然是 heroku 当天的硬件故障,他们在第二天通过电子邮件通知了我。

【讨论】:

    猜你喜欢
    • 2012-04-01
    • 2012-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多