Na aš darau kiek kitaip (tik reikia turėti galvoje, kad aš pats CSS ar LESS nerašau, tik suteikiu technines galimybes karpytojams ir kitiems programuotojams):
1. Visas CSS rašomas su LESS, taip atsiranda galimybė importuoti nustatymus ir pan.
2. Kiekvienai stambesnei daliai kuriamas atskiras LESS
3. Yra aprašyta statinė klasė kuriai nurodai kokius LESS failus krauti
4. Kadangi layout generuojamas tik tada, kai visi kontroleriai ir modeliai savo darbą jau atliko, tai layout reikiamoje kviečiamas metodas render kuris:
a) Surūšiuoja visą masyvą pagal abėcėlę
b) paskaičiuoja iš gautų failų pavadinimų hash'ą (naudojant tuos pačius failus gausime tą patį hash, nepriklausomai nuo įdėjimo tvarkos)
c) pasitikrina ar yra sukurtas failas /static/render/css/_HASH.css, jei ne jį sugeneruoja
d) atiduodamas pilnas kelias iki css failo (http://domain.ltd/static/render/css/_HASH_.css)
5. Layoute įrašomas kelias iki CSS
Tokiu būdu LESS failai apdorojami tik vieną kartą, ir esant skirtingoms LESS kombinacijoms bus sugeneruoti skirtingi CSS failai.
žinoma yra galimybė per COOKIE nurodyti, kad pergeneruotų failą kiekvieną kartą priverstinai, kai keičiami LESS failai.
Taip pat reikia jausti ribą kiek smulkinti į dalis, nes kuo daugiau skirtingų variantų tuo daugiau bus skirtingų CSS failų kuriuos naršyklei reiks parsisiųsti. Taigi reikia pažiūrėti kas yra geriau ar didelis CSS kuris atsiunčiamas tik vieną kartą, ar keli maži CSS.
Iš esmės panašią realizacija naudoju ir JS failams, tik ten dar papildomai veikia AMD, kuris suteikia galimybę visus darbus atlikti asinchroniškai, bet apie tai jau kitoje temoje nebent :D
MongoDB Certified Developer
MongoDB Certified DBA
Zend Certified Engineer