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瞭解更多詳情。
謝謝。很好的見解 –