Saya telah mengompresi bootstrap.min.js menggunakan django_compressor
ikon runtuhnya bilah navigasi tidak ditampilkan karena kesalahan penguraian XML.
Saya menggunakan bootstrap4, saya tidak menghadapi masalah seperti itu dengan bootstrap3
saya melihat perbedaannya menggunakan elemen inspeksi di firefox
Tidak ada kesalahan (tanpa kompresi)
.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")
}
ini memberikan kesalahan XML (setelah kompresi)
.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")
}
Saya dapat mengonfirmasi bahwa ini masih terjadi, meskipun ada perubahan pada # 828
Saya menggunakan Django 2.0, Python 3.6, django-compressor 2.2, Bootstrap 4.1.1
Masalahnya disebabkan oleh CSSMinFilter
Meminjam dari solusi untuk csscompressor , saya menambahkan filter khusus untuk membungkus rcssmin (ganti CSSMinFilter di settings.COMPRESS_FILTERS dengan string jalur bertitik ke filter ini dan ubah jalur callback
). Ini akan mengganti spasi di URL data dengan "% 20" sebelum diserahkan ke rcssmin yang mencegah rcssmin merusak URL.
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'
Masalah ini juga telah dilaporkan ke rcssmin .
FYI, masalah ini tampaknya merupakan duplikat dari # 878.
Komentar yang paling membantu
Saya dapat mengonfirmasi bahwa ini masih terjadi, meskipun ada perubahan pada # 828
Saya menggunakan Django 2.0, Python 3.6, django-compressor 2.2, Bootstrap 4.1.1
Masalahnya disebabkan oleh
CSSMinFilter