无法推送到Heroku:Sprockets :: FileNotFound:找不到application.css

时间:2015-08-25 16:31:00

标签: ruby-on-rails ruby-on-rails-4 heroku sprockets

我曾经能够毫无问题地推向Heroku。在做了一些似乎与我的问题无关的更改后,它无法推送到Heroku。在git push heroku我收到错误:

...
remote: -----> Preparing app for Rails asset pipeline
remote:        Running: rake assets:precompile
remote:        rake aborted!
remote:        Sprockets::FileNotFound: could not find file: /tmp/build_c657fd7***e8c75a3/app/assets/stylesheets/application.css
remote:        /tmp/build_790d1e***cab4395/vendor/bundle/ruby/2.2.0/gems/sprockets-3.3.3/lib/sprockets/loader.rb:103:in `load_from_unloaded'
remote:        /tmp/build_790d1***ab4395/vendor/bundle/ruby/2.2.0/gems/sprockets-3.3.3/lib/sprockets/loader.rb:60:in `block in load'
...
remote:  !     Precompiling assets failed.
remote:  !     Push rejected, failed to compile Ruby app
remote:  !     Push rejected to ***.

application.css确实存在于我的开发环境中,包括:

 *= require_self
 *= require universal
 *= require bootstrap-datepicker3
 *= require menu_header
 *= require table
 *= require wice_grid
 *= require_tree .

有没有人知道可能导致问题的原因以及该怎么办?如果我可以通过重置某些内容来解决问题,那么这是一个选项,因为应用程序尚未生效,因此没有丢失数据的风险。

3 个答案:

答案 0 :(得分:7)

我联系了Heroku,他们将其描述为一个slug缓存问题。使用purge_cache清除缓存解决了它。

答案 1 :(得分:0)

根据研究,可能有一些选择: 1)只需将config.serve_static_assets设置为true即可 2)制作一个rake资产:在推送之前预编译,也看看你是否有任何错误 3).git文件在git目录中被破坏

答案 2 :(得分:0)

我知道有关Heroku的问题,但我在EngineYard上偶然发现了同样的问题并找到了解决方案。由于我仍然有一个低代表,我无法将其添加为评论我发布这个作为答案,虽然有一个稍微不同的问题......

首先确保您的资产根本没有被编译(因为这是发生错误的地方)。 只需将这两行添加到/config/ey.yml

即可
precompile_assets: false
precompile_unchanged_assets: false

然后使用rake任务部署代码:rake tmp:cache:clear(清除tmp / cache)或rake tmp:clear(清除所有缓存和套接字文件)