2012-10-04 33 views
1

我們有一個大型的ASP.NET MVC應用程序,其中包含大量的CSS〜105個不同的文件。這些文件由組件分隔,這使得它們更容易管理。在運行時,我們使用處理程序對這些進行縮小/組合。在運行時爲動態變量提供較少的文件

此外,我們的應用程序使用的皮膚設置;管理員可以自定義網站的字體和顏色。使用NVelocity將這些皮膚設置注入到CSS文件中,儘管這種設置很舊,但性能卻非常高。

我想將CSS移動到使用較少,這將允許更多的代碼重用和清潔的CSS文件中。我正在努力完成這個最好的選擇。我現在的思路是這樣的:

  1. 管理員使皮膚的修改,並保存
  2. 在保存應用程序生成盤A skin.less文件,該文件是一個包含所有變量的主文件少
  3. 需要較少的變量後續的CSS文件上做skin.less
  4. 少的文件處理和精縮/組合在一個處理器的@import,並擔任到客戶端。

我的問題是,這似乎是爲動態變量提供給較少文件的最佳方法嗎?在光盤上生成skin.less文件是我唯一的選擇,或者@import語句是否可以引用處理程序本身,因此不需要在光盤上生成文件?

+0

'@ import'可能會造成問題,例如在IE的一些版本中阻塞,以及潛在的其他瀏覽器,其中化合物的加載時間的頁面。如果你能,你可以嘗試避免它們。 – TheZ

回答

0

我認爲你可以這樣做。不太一樣的東西,你在說什麼,但我做了一些概念證明的使用與蒙皮這裏LESS:

https://github.com/aguyawry/less_tests

我覺得一個區別是,在這個POC,該品牌較少文件是加載在標記中的一個,它導入基本應用程序樣式,然後指定覆蓋基礎中初始值的新變量。

這POC是所有客戶端,但在實踐中,我們做這個服務器的一面。實際上,我們正在建立一個UI,讓客戶自己選擇自己的風格(bg顏色,邊框顏色....),然後將其從皮膚樣式表中渲染到系統中。

我不認爲通過TheZ的意見適用,因爲你正在做的一切服務器端。如果你在做這個客戶端,阻塞只會發生。