Halo, Saya mengalami masalah saat menggunakan Bootstrap 4 alpha 6. Menemukan bahwa semua CSS setelah penyertaan BS4 diabaikan oleh browser. Gali lebih dalam dan temukan kesalahan penguraian dari css yang dihasilkan.
Saya menggunakan Django 1.8.17, Kompresor 2.1.1, Sass 3.4.22
Saya akan mendokumentasikan di sini kesalahan penguraian pertama yang saya temukan.
Kesalahannya adalah kutipan ganda "
di stroke='rgba(0, 0, 0, 0.5")',
padahal seharusnya stroke='rgba(0, 0, 0, 0.5)'
. Ini menyebabkan kesalahan penguraian dalam dokumen.
.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"); }
Cocok dengan versi yang telah dikompilasi sebelumnya.
$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)),
)
terlihat sangat buruk. bantuan apa pun untuk memperbaiki ini akan dihargai, kemungkinan saya tidak akan punya waktu untuk beberapa minggu mendatang.
Aku akan pergi. Saya tidak akrab dengan basis kode Anda sehingga petunjuk apa pun tentang di mana harus memulai / firasat apa pun akan sangat berharga.
Beberapa pemikiran:
COMPRESS_ENABLED = False
?@carltongibson :
COMPRESS_ENABLED = False
, hasil yang sama diamati dengan menyetelnya True
.$ sass -v
Sass 3.4.22 (Selective Steve)
Saya telah mencoba memasukkan versi sass atau file bootstrap.css yang sudah dibuat sebelumnya di blok kompresor diikuti oleh file yang hanya berisi body b ackground:green sebagai lampu centang untuk CSS yang valid/dapat diuraikan. Saya mendapatkan 'hijau' untuk versi .css yang dibuat sebelumnya, tetapi tidak untuk .sass—di mana kompresor membuat bootstrap.
@wjdp Oke Terima kasih. Hmmm.
Dalam hal ini, dapatkah saya menyarankan untuk meletakkan breakpoint di Compressor.precompile
? Pertama apakah content
dilewatkan dengan benar?
Kemudian di hunks()
apakah value
dikembalikan dari precompiler benar?
saya sedang mencari ini sekarang. masalahnya sama dengan #764. CssAbsoluteFilter menggunakan r'url\(([^\)]+)\)'
untuk mencocokkan URL, dan karena itu berhenti pada tanda kurung penutup pertama. karena regex tidak mampu menangani jumlah kurung bersarang yang berubah-ubah, saya melihat tiga opsi:
saya tidak ingin menghabiskan banyak waktu untuk ini dan sedang mencari opsi 1, jika ada yang ingin membuat solusi yang lebih kuat, saya akan senang untuk meninjaunya.
perbaikan yang diusulkan di #828. itu tidak benar-benar menangani tanda kurung bersarang sama sekali, itu hanya mengharapkan tanda kutip penutup jika ada tanda kurung pembuka (jadi url("data:...stroke='rgba(0, 0, 0, 0.5)
tidak cocok) dan, untuk amannya, data-uris diabaikan sama sekali.
@wjdp bisakah Anda mencoba #828? Itu harus melakukan apa yang Anda butuhkan tetapi uji coba di pihak Anda akan menjadi konfirmasi yang baik.
Harus melakukan
@carltongibson Dapat mengonfirmasi bahwa PR telah memperbaiki masalah ini untuk saya. Terima kasih @karyon atas pekerjaan Anda yang sangat cepat! :tersenyum:
Luar biasa 👏🏽 terima kasih atas tindak lanjutnya.