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