Ruby on rails 可以在运行时编译吗?

Ruby on rails 可以在运行时编译吗?,ruby-on-rails,sass,compass-sass,Ruby On Rails,Sass,Compass Sass,我已经看到某些Rails CMSE(比如Radiant)有一些插件,在访问页面时基本上可以编译Sass。在一个普通的rails应用程序中有没有办法做到这一点?这样做是否有效?基本上,我正在寻找一种方法来删除运行Compass编译样式表的额外步骤。按请求编译?我认为这可能是一个成功的表现。在这种情况下,您肯定应该使用缓存策略。因此,只有当样式表不在缓存中时,它才会编译样式表 您可以创建一个helper方法setup_stylesheet,用于设置css样式表。在应用程序布局上调用此方法 设置_样式

我已经看到某些Rails CMSE(比如Radiant)有一些插件,在访问页面时基本上可以编译Sass。在一个普通的rails应用程序中有没有办法做到这一点?这样做是否有效?基本上,我正在寻找一种方法来删除运行Compass编译样式表的额外步骤。

按请求编译?我认为这可能是一个成功的表现。在这种情况下,您肯定应该使用缓存策略。因此,只有当样式表不在缓存中时,它才会编译样式表

您可以创建一个helper方法setup_stylesheet,用于设置css样式表。在应用程序布局上调用此方法

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

另一种方法:


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

我没有专门使用compass,但它似乎有一个生产标志,所以文件被编译-我无法想象他们会在生产中根据请求重新编译,Radiant会在应用程序启动时编译它的css,如果你提交这些生成的css文件,它不会再次尝试生成它们


Sass和Compass自动与Rails集成。如果您使用的是Rails 3,那么您所要做的就是将
gem“haml”
添加到您的Gemfile和
.sass
public/stylesheets/sass
中的scss
文件将被编译成
public/stylesheets中的css
文件
  • 这样做是否有效
  • 在运行时编译时,将出现大量的性能损失

    正如Nex3(的作者)在上所指出的,没有必要运行
    指南针手表

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


    嗯,祝你好运

    我很好奇这会有什么用处,肯定会给页面请求增加更多的权重?(如果你有一个巨大的精灵会发生什么?)-你可以使用Guard或Grunt和watch功能,然后部署css