لقد قمت بضغط 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-compressor 2.2 و Bootstrap 4.1.1
سبب المشكلة هو CSSMinFilter
بالاقتراض من حل بديل لـ callback
). سيؤدي هذا إلى استبدال المسافات في عناوين URL للبيانات بـ "٪ 20" قبل التسليم إلى rcssmin الذي يمنع rcssmin من تغيير عناوين 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'
تم أيضًا الإبلاغ عن هذه المشكلة إلى rcssmin .
لمعلوماتك ، يبدو أن هذه المشكلة نسخة مكررة من رقم 878.
التعليق الأكثر فائدة
أستطيع أن أؤكد أن هذا لا يزال يحدث ، على الرغم من التغييرات في # 828
أنا أستخدم Django 2.0 و Python 3.6 و django-compressor 2.2 و Bootstrap 4.1.1
سبب المشكلة هو
CSSMinFilter