我曾经能够毫无问题地推向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 .
有没有人知道可能导致问题的原因以及该怎么办?如果我可以通过重置某些内容来解决问题,那么这是一个选项,因为应用程序尚未生效,因此没有丢失数据的风险。
答案 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
(清除所有缓存和套接字文件)