مرحبًا ، أواجه مشكلة أثناء استخدام Bootstrap 4 alpha 6. واجهت أن جميع CSS بعد تضمين BS4 قد تجاهلها المتصفح. تم حفر أعمق وتم العثور على خطأ في تحليل ملف css الذي تم إنشاؤه.
أنا أستخدم Django 1.8.17 و Compressor 2.1.1 و Sass 3.4.22
سأوثق هنا أول خطأ تحليل وجدته.
الخطأ هو الاقتباس المزدوج "
في stroke='rgba(0, 0, 0, 0.5")',
بينما يجب أن يكون stroke='rgba(0, 0, 0, 0.5)'
. هذا يسبب أخطاء في التحليل في المستند.
.navbar-light .navbar-toggler-icon {
background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5")' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 8h24M4 16h24M4 24h24'/%3E%3C/svg%3E"); }
.navbar-light .navbar-toggler-icon {
background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 8h24M4 16h24M4 24h24'/%3E%3C/svg%3E"); }
تتطابق مع النسخة المترجمة مسبقًا.
$navbar-light-toggler-bg: str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='#{$navbar-light-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 8h24M4 16h24M4 24h24'/%3E%3C/svg%3E"), "#", "%23") !default;
$navbar-light-color: rgba($black,.5) !default;
$black: #000 !default;
{% compress css %}
<link rel="stylesheet" type="text/x-scss" media="screen" charset="utf-8"
href="/static/bootstrap/scss/bootstrap.scss" />
{% endcompress %}
COMPRESS_PRECOMPILERS = (
('text/coffeescript', 'coffee --compile --stdio'),
('text/x-sass', 'sass {{infile}} {{outfile}} --load-path {}'.format(LIB_PATH)),
('text/x-scss', 'sass --scss {{infile}} {{outfile}} --load-path {}'.format(LIB_PATH)),
)
تبدو سيئة للغاية. سيكون موضع تقدير أي مساعدة في إصلاح هذا ، ومن المحتمل ألا يكون لدي الوقت للأسابيع القادمة.
سآخذ للذهاب. لست على دراية بقاعدة التعليمات البرمجية الخاصة بك ، لذا فإن أي مؤشرات حول مكان البدء / أي حدس ستكون ذات قيمة كبيرة.
زوجان من الأفكار:
COMPRESS_ENABLED = False
؟carltongibson :
COMPRESS_ENABLED = False
، تمت ملاحظة نفس النتيجة عند تعيينها True
.$ sass -v
Sass 3.4.22 (Selective Steve)
لقد حاولت تضمين إما إصدار sass أو ملف bootstrap.css الذي تم إنشاؤه مسبقًا في كتلة ضاغط متبوعًا بملف يحتوي فقط على body b ackground: أخضر كإشارة فحص لـ CSS صالح / قابل للتحليل. أحصل على "اللون الأخضر" لإصدار .css المبني مسبقًا ، ولكن ليس بالنسبة لـ .sass - حيث يبني الضاغط التمهيد.
wjdp موافق شكرا. أمم.
في هذه الحالة ، هل يمكنني اقتراح وضع نقطة توقف في Compressor.precompile
؟ أولاً ، هل تم تمرير content
بشكل صحيح؟
ثم في hunks()
تم إرجاع value
من المترجم المسبق صحيحًا؟
أنا أبحث في هذا الآن. المشكلة هي نفسها # 764. يستخدم CssAbsoluteFilter r'url\(([^\)]+)\)'
لمطابقة عناوين URL ، وبالتالي يتوقف عند قوس الإغلاق الأول. نظرًا لأن regex غير قادر على التعامل مع عدد عشوائي من الأقواس المتداخلة ، أرى ثلاثة خيارات:
لا أرغب في قضاء الكثير من الوقت في هذا الأمر وأبحث في الخيار 1 ، إذا أراد أي شخص إنشاء حل أكثر قوة ، فسيسعدني مراجعة ذلك.
الإصلاح المقترح في رقم 828. إنه لا يتعامل فعليًا مع الأقواس المتداخلة على الإطلاق ، بل يتوقع فقط علامات اقتباس الإغلاق إذا كانت هناك علامات اقتباس افتتاحية (لذلك لن يتطابق url("data:...stroke='rgba(0, 0, 0, 0.5)
) ولكي تكون آمنًا ، يتم تجاهل بيانات uris تمامًا.
wjdp هل يمكنك تجربة # 828؟ يجب أن تفعل ما تحتاجه ولكن إجراء اختبار من جانبك سيكون تأكيدًا جيدًا.
سأفعل
هل يستطيع carltongibson تأكيد أن العلاقات العامة قد أصلحت هذه المشكلة بالنسبة لي. شكرًا لك @ karyon على عملك السريع جدًا! :ابتسامة:
رائع 👏🏽 شكرا على المتابعة.