Почему фоновые изображения SVG ломаются, когда в dotnetnuke включены составные файлы?

Сайт, над которым я работаю, использует сжатое изображение SVG в качестве фонового изображения для кнопки на сайте dotnetnuke. Версия DNN — 07.00.00 (1586). CSS выглядит так:

a.primaryButton {
     background: url(data:image/svg+xml;base64,[data]);
}

ПРИМЕЧАНИЕ. Я использовал здесь [данные] вместо фактического сжатого файла.

Когда я включаю составные файлы в Host -> Host Settings -> Advanced Settings -> Client Resource Management и отмечаю Minify CSS и Minify JS, вышеуказанное фоновое изображение меняется на:

a.primaryButton {
     background: url(https://mydevsite.com/DependencyHandler.axd/image/svg+xml;base64,[data]);
}

После этого фоновое изображение SVG больше не появляется. Моя первоначальная мысль заключалась в том, что возникла проблема при попытке сжатия уже сжатого SVG. Если я скопирую и вставлю URL-адрес в браузер, я получу неверный ответ на запрос 400. Почему фоновое изображение SVG будет недействительным после включения составных файлов в DNN?

Заранее спасибо.

ОБНОВЛЕНИЕ: подумав об этом еще немного, обработчику составного файла DNN действительно не имеет смысла заменять data: в приведенном выше коде на https://mydevsite.com/DependencyHandler.axd, поэтому возникает дополнительный вопрос: как предотвратить попытку функциональности составного файла DNN? сжимать файлы SVG, используемые в качестве фоновых изображений в коде CSS?


person Dropzilla    schedule 29.05.2013    source источник


Ответы (1)


Client Resource Management Framework DotNetNuke — это компонент, который управляет файлами CSS и обрабатывает их, чтобы убедиться, что ресурсы обслуживаются через его конечную точку DependencyHandler.axd.

Однако в этом компоненте была ошибка в отношении URI данных, как вы используете здесь, которые не должны обслуживаться через обработчик зависимостей. Эта ошибка была исправлена ​​в DNN 7.0.5.

person bdukes    schedule 30.05.2013
comment
Спасибо за вашу помощь! Мы будем обновлять в ближайшее время. На данный момент мы удалили SVG и используем webkit для создания нужных нам градиентов, а затем по умолчанию используем сплошной цвет для браузеров, которые не поддерживают градиенты css. - person Dropzilla; 30.05.2013