2015-06-23 43 views
1

我想知道是否可以配置Rails資產管道,以便CSS壓縮器將生成的生產CSS中的樣式表中引用的圖像(即通過base64編碼)嵌入。不幸的是,即使Rails guide on the asset pipeline也沒有關於這方面的信息(或關於如何配置壓縮機的任何信息)。在Rails資產管道中將圖像編碼到css中

我知道Rails只提供適配器到普通的CSS壓縮器(比如YUI),所以它依賴於它們的功能。所以,如果這些壓縮器不能在CSS中嵌入圖像,是否還有其他壓縮器可以做到這一點,並有適配器的Rails?

回答

1

根據我迄今爲止Rails的經驗(不是超大),我猜測Rails不支持圖像數據 - uri編譯到CSS中。 (這可能是你爲什麼在文檔中沒有發現它的原因。)

我也想不出任何我想要這樣做的情況;考慮到圖像重用的潛力,將它們直接編譯成CSS似乎會引起樣式表的膨脹,而top Google results I'm seeing對它的有用程度是有矛盾的。

你的應用程序有多痛苦,那就是一個額外的請求?你可能是prematurely optimizing

+0

嗨,是的,你是對的,這是一個矛盾的話題,我一直在閱讀它。但在我的情況下,我的樣式表中引用了10個以上的小型svg圖形(幾個千字節)。我的CSS是相當廣泛的,所以編譯SVG到它只會有一個相對較小的增加,但它會節省大量額外的請求。 – ZeroMax

+1

明白了,這聽起來像一個人們可能希望的用例合法。如果我處於這種情況,我首先會嘗試編寫我自己的Sprockets helper,因此在您的CSS中,您可以調用類似'data_uri_for(「image_name.png」)'的類,並讓Sprockets將該文件轉換爲base64。它看起來像這[這個問題](http://stackoverflow.com/questions/7602173/add-custom-methods-to-rails-3-1-asset-pipeline/8560160#8560160)有一個可行的方法。 –

+0

這確實是最好的方法,我沒有想到這一點。這也使您能夠選擇性地嵌入資產。我會盡量在稍後把一些東西放在一起。謝謝! – ZeroMax