问题现象
Rails版本,升级到Rails 3.0以后,当rails server -e=production时,报错ActionView::Template::Error (application.css isn't precompiled):
这是因为3.0后开始采用assets pipeline,所有**.css.scss、**.js.coffee文件都需要预编译,
生产环境下默认不会进行编译,而开发环境下默认会先进行编译,所以开发环境不报错。
解决方法
方法一:修改production.rb
config.assets.compile = true #默认为false
修改为true后,以后请求资源时如果发现没有编译会重新编译。但这样会影响效率,建议不要这样做。
方法二:手工进行编译
rake assets:precompile
然后重启rails server。这是推荐的做法。