...
When the need for asset management araised in 2010 there was no alternatives on the market (the https://github.com/kriswallsmith/assetic was developed in 2011) and we had to write something ourselves. This unfortunately forced us to copy/paste specific (latest at the time) versions of "JsMin" and "CssMin" into In-Portal. As a result we're not receiving any updates/fixes from these libraries as well.
Fixtures
Code Block |
---|
language | css |
---|
title | Non-Minified File |
---|
linenumbers | true |
---|
|
@media screen and (min-width: 480px) and (max-width: 639px) {
body {
background: #000 url(/themes/advanced/img/header-bg.png) no-repeat top left;
}
}
@media screen and (max-width: 640px) {
body {
background: #000 url(/themes/advanced/img/header-bg.png) no-repeat top left;
}
} |
Code Block |
---|
language | css |
---|
title | Compressed File Using YUICompressor |
---|
linenumbers | true |
---|
|
@media screen and(min-width:480px) and(max-width:639px){body{background:#000 url(/themes/advanced/img/header-bg.png) no-repeat top left;}}@media screen and(max-width:640px){body{background:#000 url(/themes/advanced/img/header-bg.png) no-repeat top left;}} |
Code Block |
---|
language | css |
---|
title | Minified using PHPMin |
---|
linenumbers | true |
---|
|
@media screen and (min-width: 480px) and (max-width: 639px){body{background:#000 url(/themes/advanced/img/header-bg.png) no-repeat top left}}@media screen and (max-width: 640px){body{background:#000 url(/themes/advanced/img/header-bg.png) no-repeat top left}} |
Turns out that YUICompressor is awfully bad in compression of CSS, that uses media queries, because it transforms "and (" into "and(" and that immediately makes CSS non-working.
Solution
- use https://github.com/kriswallsmith/assetic library for asset file creation (internals of "m_Compress" tag)
- use JsMin and CssMin from Composer
- deprecate "JsMinifyHelper" and "CssMinifyHelper" classes in favor of "MinifyHelper::compressString" method
- store compiled assets in "/system/cache/assets/" folder instead of "/system/cache/" folder
...