Sass - 可以在运行时编译吗?

时间:2011-01-10 14:44:45

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

我已经看到某些Rails CMSes(如Radiant)具有插件,在访问页面时基本上编译Sass。有没有办法在常规的rails应用程序中执行此操作?这样做是否表现如此?基本上,我正在寻找一种方法来删除运行Compass以编译我的样式表的额外步骤。

4 个答案:

答案 0 :(得分:1)

我没有专门使用指南针,但看起来有一个生产标志,所以文件被编译 - 我无法想象他们构建它来重新编译生产中的每个请求,Radiant在应用程序启动时编译它的css,如果你然后提交那些生成的CSS文件,它不会再尝试再生成它们AFAIK。

http://compass-style.org/docs/tutorials/production-css/

答案 1 :(得分:1)

Sass和Compass自动与Rails集成。如果你正在使用Rails 3,你所要做的就是将gem "haml"添加到你的Gemfile中,.sass中的所有.scsspublic/stylesheets/sass文件将被编译为{{1} } .css中的文件。

答案 2 :(得分:0)

按要求编译?我认为它可能会对性能产生影响。在这种情况下,你绝对应该使用缓存策略。因此,只有当它不在缓存中时才会编译样式表。

您可以创建一个帮助方法 setup_stylesheet ,它将负责设置css样式表。您可以在应用程序布局上调用此方法。

setup_stylesheet 将检查css样式表是否在缓存中,如果它在那里,则使用它。如果不是,则编译它。

另一种方法:

您可以设置一个初始化程序,在启动应用程序时将调用Compass来编译SASS样式表。

答案 3 :(得分:0)

  • 这样做是否有效?

在运行时编译时会出现大量性能损失。

正如Nex3(Sass gem的作者)在another forum上指出的那样,无需运行compass watch

我强烈建议将以下内容放入production.rb:Sass::Plugin.options[:never_update] = true - 如果您使用Heroku,这一点尤其重要。 (您也可以在机架文件中执行此操作,您也可以在其中指定other options

嗯,祝你好运