Django-compressor: Ошибка синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π° xml Π² URL-адрСсС изобраТСния svg послС сТатия

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 26 мая 2018  Β·  2ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: django-compressor/django-compressor

Π― сТал bootstrap.min.js с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ django_compressor

Π·Π½Π°Ρ‡ΠΎΠΊ сворачивания ΠΏΠ°Π½Π΅Π»ΠΈ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ Π½Π΅ отобраТаСтся ΠΈΠ·-Π·Π° ошибки синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π° XML.
Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ bootstrap4, с bootstrap3 с Ρ‚Π°ΠΊΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ Π½Π΅ сталкивался

Π― ΡƒΠ²ΠΈΠ΄Π΅Π» Ρ€Π°Π·Π½ΠΈΡ†Ρƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ элСмСнт ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π² firefox

Π‘Π΅Π· ошибок (Π±Π΅Π· сТатия)

.navbar-dark .navbar-toggler-icon {
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")
}

это Π΄Π°Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ XML (послС сТатия)

.navbar-dark .navbar-toggler-icon {
    background-image: url("data:image/svg+xml;charset=utf8,%3CsvgviewBox='003030'xmlns='http://www.w3.org/2000/svg'%3E%3Cpathstroke='rgba(255,255,255,0.5)'stroke-width='2'stroke-linecap='round'stroke-miterlimit='10'd='M47h22M415h22M423h22'/%3E%3C/svg%3E")
}

Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π― ΠΌΠΎΠ³Ρƒ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ это всС Π΅Ρ‰Π΅ происходит, нСсмотря Π½Π° измСнСния Π² # 828

Π― ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ Django 2.0, Python 3.6, django-compress 2.2, Bootstrap 4.1.1

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π²Ρ‹Π·Π²Π°Π½Π° CSSMinFilter

ВсС 2 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π― ΠΌΠΎΠ³Ρƒ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ это всС Π΅Ρ‰Π΅ происходит, нСсмотря Π½Π° измСнСния Π² # 828

Π― ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ Django 2.0, Python 3.6, django-compress 2.2, Bootstrap 4.1.1

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π²Ρ‹Π·Π²Π°Π½Π° CSSMinFilter

Заимствуя ΠΎΠ±Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡƒΡ‚ΡŒ для csscompressor , я Π΄ΠΎΠ±Π°Π²ΠΈΠ» настраиваСмый Ρ„ΠΈΠ»ΡŒΡ‚Ρ€, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅Ρ€Π½ΡƒΡ‚ΡŒ rcssmin (Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ CSSMinFilter Π² settings.COMPRESS_FILTERS строкой ΠΏΡƒΡ‚ΠΈ с Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ для этого Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π° ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΏΡƒΡ‚ΡŒ callback ). Π­Ρ‚ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ Π² URL-адрСсах Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° "% 20" ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ΠΉ rcssmin, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ URL-адрСсов rcssmin.

def compress(css, **kwargs):
    capture_svg = re.compile(r'url\("(data:image/svg.*?svg%3[Ee])\"\)')
    data_urls = re.findall(capture_svg, css)
    for data_url in data_urls:
        css = css.replace(data_url, data_url.replace(' ', '%20'))
    css = cssmin(css, **kwargs)
    return css


class CSSMinFilter(CallbackOutputFilter):
    callback = 'myapp.core.utils.compress'

Об этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ сообщили rcssmin .

К Π²Π°ΡˆΠ΅ΠΌΡƒ свСдСнию, эта ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, ΠΏΠΎΡ…ΠΎΠΆΠ΅, Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΠ΅Ρ‚ β„– 878.

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ