0
我想在编译的CSS文件中使用ruby代码,并将其作为静态资源,然后可能会缩小它。我怎样才能做到这一点?Ruby on Rails - 编译时执行代码
我想在编译的CSS文件中使用ruby代码,并将其作为静态资源,然后可能会缩小它。我怎样才能做到这一点?Ruby on Rails - 编译时执行代码
Rails 3.1+中的资产管道将通过一系列基于文件名的预处理器发送您的资产。例如,如果您有stylesheet.css.scss
,则通过SASS处理器将文件发送到CSS中。
当您将扩展连接在一起时,您的乐趣就开始了,以便通过多个处理器发送您的资产。在您的情况下,您可以将您的资产stylesheet.css.scss.erb
命名为首先通过ERB发送,然后是SASS。下面是什么,可能看起来像一个小例子:
.some_class {
background-image: url(<%= asset_path('image.png') %>);
color: <%= some_ruby_code_to_generate_a_color %>;
}
所以,当你在一个正常ERB视图模板会,你可以简单地抛出红宝石<%= %>
标签为您的资产时,资产将被运行之间的代码正在编译(或预编译)。
关于缩小,这只是资产管道通过一些配置选项来处理的。查看Rails guide for the asset pipeline了解更多详情。
谢谢。很好的见解 –