2009-12-29 86 views
3

在我的樣式表目錄中,我有application.css,ie_fixes.cssthemes目錄。 themes目錄中有大約20個css文件。所有這些樣式表減去ie_fixes都是應用程序範圍的,因此它們被包含在應用程序佈局中。只有當用戶的瀏覽器是IE時才需要包含ie_fixes.css。我希望能夠在簡單的代碼行中將所有內容包含在主題文件夾中。將所有樣式表包含在Rails的子目錄中

Rails提供一個簡單的方法做這包括所有的樣式表:

stylesheet_link_tag :all, :recursive => true

花哨,但這個問題是它包含了我在每個瀏覽器ie_fixes.css,吹我的IE條件註釋出來的水。所以我的問題是,有沒有一種簡單的方法來包含所有樣式表的子目錄,而不必指定每個文件名?

我試過stylesheet_link_tag 'themes/', :recursive => true不同的變化無濟於事。看起來這個方法所做的一切都是在stylehseet目錄前面加上.css,如果需要的話。

+0

難道你不能只使用共享部分? – 2009-12-29 01:21:55

+0

我認爲這會過於複雜。 – thorncp 2009-12-29 01:35:01

+0

這將是代碼重用,並且代碼重用通常會是很好的設計。 – 2009-12-29 02:54:30

回答

1

您能否將它包含在另一個目錄中,而在頭標記的條件IE語句中,將其指向該目錄?

這仍然可以讓你得到花哨的樣式表:所有當你需要它。

+0

這將涉及用所有主題來清理根樣式表目錄,這就是爲什麼主題子目錄存在。 – thorncp 2009-12-29 01:36:33

+0

我認爲你的ie_fixes.css只適用於IE瀏覽器的權利?我想你在說什麼,每個主題也必須從這個ie_fixes.css文件也適當繼承?即擰緊一切:-)祝你好運。 – pjammer 2009-12-29 03:48:14

+0

是的,ie_fixes只適用於IE。不,主題不需要IE修復,它修復了完全不同的東西。基本上我想包括除ie_fixes之外的每個瀏覽器的每個css,IE只包含ie_fixes。 – thorncp 2009-12-29 04:38:49

2

一個解決方案是將所有的CSS文件(IE除外)合併到一個文件中。然後根據需要包含IE特定的文件。

無論如何,你會想這樣做,因爲20個http連接(每次最多2個)將永遠佔用。

+0

這就是':cache => true'是的;) – thorncp 2009-12-29 06:51:29

+0

雖然第一次加載仍然會很慢 – corroded 2010-08-27 19:01:48

相關問題