2013-03-21 29 views
2

我正在使用CakePHP構建我的網站(如果有的話)。我有一個TON元素/模塊,每個都有自己的文件和相當複雜的CSS(在某些情況下)。SASS和/或LESS - 我可以隨時創建動態CSS文件嗎?

目前CSS是在一個巨大的單一的CSS文件,但爲了理智(以及下面提到的細節),我希望能夠將CSS保留在它自己的文件中 - 例如css/modules/rotator.css。但是對於普通的CSS,這會調用CSS文件的TON。

於是,我開始尋找到SASS或每個推薦LESS。但是 - 似乎這些應該被編譯然後上傳。但在我的情況下,每個頁面都可以通過CMS進行編輯,因此一頁可能有10分鐘的模塊,然後在CMS更改後可能有20或5等。如果不打算使用它,我不想爲每個模塊編譯CSS。

有沒有方法可以讓我有一噸的CSS文件,所有的編譯對飛?

附註:我也想允許用戶自行編輯CSS的網頁和/或模塊,那麼這將默認CSSS後加載。 SASS和/或LESS可能嗎?

我不需要一個完整的演練(雖然那會很棒),但到目前爲止,我的搜索已經返回了與Ruby on Rails相關的東西(從未使用過)或者每個CSS上的通用教程語言。

歡迎任何其他建議。我是一個完整的SASS/LESS noob。如何用更少的I動態(服務器端)合併多個CSS文件

澄清的問題嗎? (甚至一個鏈接到一個資源,將讓我在正確的軌道是很多!)

+0

你能更具體地描述你的目標嗎?聽起來你想使用LESS/SASS來輸出每個模塊的文件,這是可能的,但是需要你管理每個編輯過的課程中包含哪些文件。當你說你不想要一個巨大的文件,你的意思是源CSS或輸出?是SASS/LESS可以將50個小scss/less文件編譯成一個大css文件或多個文件,但您需要對其進行配置。我的建議是:減少跑步次數,嘗試一些東西 - 問題會變得更加清晰,並可能自行排除。 ;) – 2013-03-25 16:28:37

+0

另請參閱:http://stackoverflow.com/q/12274628/1455709 – Patrick 2014-01-21 07:08:54

回答

1

假設'對飛「的頁面加載」的意思,這可能比發送多個文件更慢。我建議每當模塊保存時重新編譯樣式表。

+0

這可能是我想要做的,但 - 如何?即使在正確的方向上的一個點將是非常有幫助的。謝謝! – Dave 2013-03-25 17:48:37

6

如果你想減少CSS文件的數量&你有一個巨大的CSS文件,所有的組件CSS,只是鏈接到它的所有頁面&請確保你正確設置緩存頭。

他們將加載文件一次,並在任何地方使用它。一個陷阱是初始頁面加載時間;如果這不是問題,請使用此解決方案。如果這是一個問題,考慮將編譯的CSS文件分解爲幾個主要的塊(default.css,authoring.css,components.css,例如。)。

不要刻意試圖使一個自定義的CSS爲每個組件集合,你實際上將迫使用戶重新下載以不同的方式重組了相同的CSS搬起石頭砸自己的腳。

+0

我明白了,但我認爲LESS/SASS會讓我保持我的CSS文件不僅僅是一個巨大的文件。即使我將它結合在後端上,每個模塊都有一個文件會更好,然後將它們合併爲一個文件。 – Dave 2013-03-24 14:15:11

+0

「我不想調用一堆CSS文件。」 - 「我不想要一個巨大的CSS文件。」選一個。 – 2013-03-25 16:19:44

+0

你錯過了我的引用。我不想要一個CSS文件進行開發,因爲這是一個絕對的PAIN來維護。但是,我希望能夠將所有模塊CSS文件(以及其他CSS文件)合併到一個(或幾個)大型CSS文件中供前端用戶使用。 – Dave 2013-03-25 17:44:56

0

僅需要必要模塊的問題應通過CMS解決。它與SASS或LESS無關。

如果您的CMS瞭解當前頁面具有哪些模塊,請不要運行SASS/LESS編譯(除非實現緩存,否則這將非常緩慢,這不是一項簡單的任務)。相反,請調整CMS的邏輯,使其包含每個模塊的CSS文件。

高級CMS如Drupal不僅會自動提取必要的CSS文件,還會將它們組合成一個文件並壓縮它。

如果您的CSS不知道當前頁面有哪些模塊(例如,「模塊」只是保存在帖子主體中的HTML代碼),那麼您無法做任何事情。

UPD:作爲紅杉麥克道爾說,在他的回答,讓用戶下載一個大的CSS文件一次比讓他們下載一些包含重複的代碼較小CSS文件更好。所有這些較小的CSS文件的累計大小將會比完整的CSS文件的大小更大。

+0

我假設我可以有很多很多css文件,然後使用SASS或LESS來組合它們,並將它保存爲一個緩存文件 - y/n? – Dave 2013-03-23 19:43:13

+0

是的,SASS和LESS都可以。但是你仍然需要調整你的CMS邏輯,使其包含必要的CSS文件。但紅杉mcdowell是正確的,這種方法是錯誤的。假設您有一些價值100KB的常見CSS代碼和5個20KB的模塊。這使得一個200KB的累積CSS文件。如果你創建了單獨的文件,你將會有一些尺寸在120到200KB之間的文件。訪問不同頁面的用戶將被迫下載每個頁面,導致大約1MB的CSS而不是200KB(它被下載一次並緩存在瀏覽器中)。 – 2013-03-23 19:59:44

相關問題