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

问题描述 投票:3回答:3

我曾经能够毫无问题地推向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 .

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

ruby-on-rails ruby-on-rails-4 heroku sprockets
3个回答
7
投票

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


0
投票

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


0
投票

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

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

precompile_assets: false
precompile_unchanged_assets: false

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

© www.soinside.com 2019 - 2024. All rights reserved.