Rails 3.0 - 在生产中关闭Compass / SASS - 样式表404

时间:2011-09-04 17:07:35

标签: ruby-on-rails ruby-on-rails-3 heroku sass compass-sass

我在Heroku上运行Compass on Rails 3.0并且它的工作正常,但我偶尔会遇到一个问题,其中(某些?)样式表的编译速度不如页面的其他部分那么快,因此它们不会被提供(.css链接导致404,然后页面显示为无样式)。

你们有没有办法让Compass在服务器启动时(prod)编译所有样式表然后再不再触摸它们?这样它基本上会预编译所有必要的样式表,并且不存在问题吗?

或者,在heroku部署之前调用一些脚本将所有样式表编译为公共/样式表,然后完全关闭生产中的Compass会更有意义吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

基于此处的讨论:

Using Compass on Heroku: /tmp for stylesheets remotely and locally

我决定完全按照您的替代方法建议关闭服务器上的样式表编辑。

我的应用程序的config.ru中有以下内容,旨在实现这一目标。

if (ENV['RACK_ENV'] || 'development') != 'development'
    require 'sass/plugin/rack'
    use Sass::Plugin::Rack
    Sass::Plugin.options[:never_update] = true
end

更新:我用更简单的方法替换了这种方法

Sass::Plugin.options[:never_update] = true

到我的production.rb环境文件的最底部,它在Heroku上运行一个魅力。如下所述:

http://ariejan.net/2010/09/28/precompile-sass-to-css-for-deployment-to-heroku