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

Fails to push to Heroku: Sprockets::FileNotFound: could not find application.css

我以前可以毫无问题地推送到 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 .

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

根据研究,可能有一些选择: 1) 只需将 config.serve_static_assets 设置为 true 2) push 前做一个rake assets:precompile ,也看看有没有错误 3) .git 文件在 git 目录

中损坏

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

我知道有人问过关于 Heroku 的问题,但我在 EngineYard 上偶然发现了同样的问题并找到了解决方案。由于我的代表率仍然很低,而且我无法将其添加为评论,因此我将其发布为答案,尽管对于一个略有不同的问题...

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

precompile_assets: false
precompile_unchanged_assets: false

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