Beim Zusammenführen von Magento-CSS-Dateien wird der Hostname für meine Daten-Uris vorgetäuscht, da RegEx in Mage_Core_Model_Design_Package
( beforeMergeCss
) nicht wie erwartet funktioniert. Der Hostname sollte relativen Bildpfaden vorangestellt werden, nicht jedoch Daten-URIs.
$cssUrl = '/url\\(\\s*(?!data:)([^\\)\\s]+)\\s*\\)?/';
$contents = preg_replace_callback($cssUrl, array($this, '_cssMergerUrlCallback'), $contents);
CSS-Code:
background: #fafafa url("data:image/svg+xml;base64, PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI2cHgiIGhlaWdodD0iM3B4IiB2aWV3Qm94PSIwIDAgNiAzIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA2IDMiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxwb2x5Z29uIHBvaW50cz0iNS45OTIsMCAyLjk5MiwzIC0wLjAwOCwwICIvPjwvc3ZnPg==") no-repeat;
Ergebnis nach dem Zusammenführen:
background: #fafafa url("http://shop12.dev/skin/frontend/shop/default/styles/data:image/svg+xml;base64")PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI2cHgiIGhlaWdodD0iM3B4IiB2aWV3Qm94PSIwIDAgNiAzIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA2IDMiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxwb2x5Z29uIHBvaW50cz0iNS45OTIsMCAyLjk5MiwzIC0wLjAwOCwwICIvPjwvc3ZnPg==") no-repeat;
Wie vermeide ich das? Ich konnte nicht herausfinden, wie die Synthax des verwendeten RegEx korrigiert werden kann. (Die Verwendung eines GIF ist für mich keine echte Lösung.)
magento-1.8
css
bug
regex
Michael
quelle
quelle
Tatsächlich deckt dieser reguläre Ausdruck mehr Fälle ab
Insbesondere diese optimierten SVG-Daten mit Verläufen: http://codepen.io/tigt/post/optimizing-svgs-in-data-uris
quelle
Ich hätte das gleiche Problem (immer noch in Magento Version 1.9.3.1 vorhanden), also habe ich ein Modul erstellt, um diesen Fehler zu beheben: https://github.com/just-better/magento1-css-merge-data-uri- Fix
quelle