我在Heroku上运行Compass on Rails 3.0并且它的工作正常,但我偶尔会遇到一个问题,其中(某些?)样式表的编译速度不如页面的其他部分那么快,因此它们不会被提供(.css链接导致404,然后页面显示为无样式)。
你们有没有办法让Compass在服务器启动时(prod)编译所有样式表然后再不再触摸它们?这样它基本上会预编译所有必要的样式表,并且不存在问题吗?
或者,在heroku部署之前调用一些脚本将所有样式表编译为公共/样式表,然后完全关闭生产中的Compass会更有意义吗?
谢谢!
答案 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