我已经看到某些Rails CMSes(如Radiant)具有插件,在访问页面时基本上编译Sass。有没有办法在常规的rails应用程序中执行此操作?这样做是否表现如此?基本上,我正在寻找一种方法来删除运行Compass以编译我的样式表的额外步骤。
答案 0 :(得分:1)
我没有专门使用指南针,但看起来有一个生产标志,所以文件被编译 - 我无法想象他们构建它来重新编译生产中的每个请求,Radiant在应用程序启动时编译它的css,如果你然后提交那些生成的CSS文件,它不会再尝试再生成它们AFAIK。
答案 1 :(得分:1)
Sass和Compass自动与Rails集成。如果你正在使用Rails 3,你所要做的就是将gem "haml"
添加到你的Gemfile中,.sass
中的所有.scss
和public/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