ActionView::Template::Error(application.css未经预编译):

6

我之前在heroku上开发过几个应用,并且从未遇到过这个错误:

ActionView::Template::Error (application.css没有预编译):

我的最新提交甚至没有更改application.css文件...这是怎么回事?

我看到有文章说要在production.rb中更改一行为:

# Don't fallback to assets pipeline if a precompiled asset is missed
config.assets.compile = true

但是这样不会使一切都变慢吗?为什么突然出现这个错误?最好的解决方法是什么?

编辑: 我应该注意到它在开发中运行得很好。


你是否将 public/assets/manifest.yml 提交到源代码控制中了?如果 Heroku 发现了它,就不会预编译你的资产。请参阅 https://devcenter.heroku.com/articles/rails3x-asset-pipeline-cedar 以获取有关如何与预编译资产一起工作的更多信息。而且你绝对不想更改配置,在生产环境中编译资产速度要慢得多。 - Daniel Evans
我没有动它。我做了通常的 git add . 然后 git commit -m "message" 然后 git push heroku master。只有一个文件被更改了,那就是一个 Rake 文件。 - Deekor
如果Rakefile发生了更改,那么预编译操作可能已被禁用或由于该更改而出现故障。我建议您在本地检查它们并查看它们是否正常工作。 - Daniel Evans
1
你实际上可以在开发环境中运行 rake assets:precompile:all 命令。确保它不会出现错误,并且创建了 public/assets/application.css 文件。 - Daniel Evans
@DanielEvans 太好了!你向我展示了调度程序中一个愚蠢的错误。现在一切都好了。 - Deekor
显示剩余2条评论
1个回答

15
在你的开发环境中运行rake assets:precompile:all命令。确保它不会出现错误并创建了public/assets/application.css文件。如果出现错误,解决它应该可以解决在Heroku上的问题。

7
RAILS_ENV=production bundle exec rake assets:precompile是Heroku要运行的命令,它不会为其他环境编译文件。 - catsby

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接