Устранение дефекта объединения файлов CSS при наличии в CSS URI-схемы типа «data: URL»

[10 ноября 2016 г.]    Российская сборка Magento 2.49.12
Magento 2: модули и услуги
#1 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8886
  • Регистрация: 20.02.2010

05.07.2014 16:52

Описание дефекта:
  • Дефектные версии: дефекту подвержены все версии Magento Community Edition и Magento Enteprise Edition.
  • Контекст дефекта: отображение витринных страниц при включенном режиме слияния файлов CSS.
  • Описание дефекта:
    • Когда какой-либо из файлов CSS интернет-магазина содержит схему «data: URL», взятую в кавычки, то при включенном режиме слияния файлов CSS Magento Community Edition и Magento Enteprise Edition некорректно обрабатывает схему «data: URL» и синтаксически повреждает создаваемый объединённый файл CSS таким образом, что браузер отказывается воспринимать правила CSS со схемой «data: URL».
      Пример правила CSS со схемой «data: URL», которое в Magento CE / EE при включенном режиме слияния правил CSS перестанет работать:
      .tm_subbanner li img:hover{background: url("data:image/svg+xml;base64, PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI2cHgiIGhlaWdodD0iM3B4IiB2aWV3Qm94PSIwIDAgNiAzIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA2IDMiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxwb2x5Z29uIHBvaW50cz0iNS45OTIsMCAyLjk5MiwzIC0wLjAwOCwwICIvPjwvc3ZnPg==") no-repeat;}

    • Более того, если внутри схемы «data: URL» используются кавычки, то система повреждает создаваемый объединённый файл CSS настолько, что браузер отказывается воспринимать ВСЕ правила CSS, которые следуют в объедининённом файле CSS после правила со схемой «data: URL».
      Пример правила CSS со схемой «data: URL», которое в Magento CE / EE при включенном режиме слияния правил CSS сломает все последующие правила CSS:
      .tm_subbanner li img:hover{filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#grayscale"); }


Способ устранения дефекта:
Российская сборка Magento, начиная с версии 2.35.6, способна корректно обрабатывать схемы «data: URL» при включенном режиме слияния файлов CSS.
Для устранения дефекта достаточно просто обновить интернет-магазин.

Поделиться темой: