Hiukan lisää optimointia blogisivustooni: CSS- ja JavaScript-tiedostot yhdistetään nyt django-mediageneratorilla yksittäisiksi tiedostoiksi. Samalla ne optimoidaan YUI Compressorilla mahdollisimman pieniksi. Tiedostojen nimet päivittyvät automaattisesti niin, että vanhat versiot eivät jää selainten välimuistiin lojumaan.

Django-mediagenerator tukee myös CoffeeScriptin ja SASSin kääntämistä JavaScriptiksi ja CSS:ksi, joten sekin tulee hoidettua samalla. Normaalien .js- ja .css-tiedostojen sekaan voi heitellä vapaasti .coffee- ja .scss-tiedostoja, ja mediagenerator kääntää ne automaattisesti oikeilla kääntäjillä.

Pienenä jippona huomasin sen, että SASS-tiedostoissa suhteellisten URL-viittausten pitää olla yhtä hakemistoporrasta ylempänä kuin normaalisti. Esimerkiksi url(images/twitter.png) piti muuttaa muotoon url(css/images/twitter.png), jotta mediagenerator nimeää sen oikein.

Django-mediagenerator toimii muuten ihan hyvin rinnakkain Djangon sisäänrakennetun staticfiles-ominaisuuden kanssa. Staticfiles ei vain ymmärrä käännöksiä ja optimointeja, mutta se hoitaa esimerkiksi admin-käyttöliittymän staattiset tiedostot. Sinänsä on harmi, ettei Django coreen ole vielä otettu mukaan mediagenerator-toiminnallisuutta. Ruby on Rails 3.1:ssa vastaava asset pipeline on jo vakiona mukana, joten Rails-sovellusten kehittäjät voivat olettaa CoffeeScriptin ja SASSin toimivan aina.

Published 28.12.2011