预编译heroku后生产中缺少Rails资产

Posted

技术标签:

【中文标题】预编译heroku后生产中缺少Rails资产【英文标题】:Rails assets missing on production after precompile heroku 【发布时间】:2018-06-27 00:16:57 【问题描述】:

由于 heroku 中的安全漏洞,我不得不在 production.rb 中设置 config.assets.compile = false。

之后,我注意到 public/assets 中有几个丢失的文件,所以我运行了:

heroku rake assets:precompile

我,[2018-06-27T00:04:19.538776 #4] 信息 -- : 写作 /app/public/assets/application-b8b220c46c76c987e22df9f17f8b738290e41c5113e680fccc1f1d61f708 7453.css I, [2018-06-27T00:04:19.539053 #4] INFO -- : 写入 /app/public/assets/application-b8b220c46c76c987e22df9f17f8b738290e41c5113e680fccc1f1d61f708 7453.css.gz

然后:

heroku restart

日志显示它创建了这个 css 文件,我在文档头中看到了它,但是该文档引发了 404 错误。我是怎么搞砸的?

【问题讨论】:

您可以在 localhost 中编译为生产,然后也可以部署。 rake assets:precompile RAILS_ENV=production 【参考方案1】:

预编译资产后,您需要使用heroku restart 重新启动heroku 服务器。

【讨论】:

忘了说,我在预编译后确实运行了heroku restart。 当。抱歉,我什么都没有。【参考方案2】:

在我注意到我之前的提交错过了那些 css 文件后,我修复了 404 错误。提交,推送并且文件在那里。仍然遇到其他管道问题,但会发布一个新的更具体的问题。

【讨论】:

是的,我试过了,*** 说我需要等待 2 天。 啊!很抱歉这么火爆。

以上是关于预编译heroku后生产中缺少Rails资产的主要内容,如果未能解决你的问题,请参考以下文章

Rails 4 Heroku 资产:预编译失败

宝石更新后:测试失败,“资产未声明为在生产中预编译”

Rails 预编译供应商/资产

预编译资产失败的 Rails

远程:!预编译资产失败。在heroku上(Rails 6和语义UI)

预编译资产 - rails 4.1.1