Dalam file Scss saya, saya memiliki baris ini:
<strong i="6">@import</strong> url(http://fonts.googleapis.com/css?family=Titillium+Web:400,300,200,600);
Ketika file dikompilasi dengan libsass, garis @ impor benar-benar lenyap dan tidak muncul dalam file output.
Baris @import harus disalin, kata demi kata, ke file CSS final karena tidak menargetkan file lokal. Itu perlu muncul di file CSS agar font saya dimuat dengan benar.
Ruby Sass berperilaku dengan benar. Ini memindahkan pernyataan @import , kata demi kata, ke file CSS yang dikompilasi.
Dalam memperbaiki ini, tidak cukup menguji keberadaan http://
. Sering kali, orang akan menggunakan URL tanpa protokol sehingga impor akan berfungsi pada halaman HTTP dan HTTPS. Contohnya adalah:
<strong i="20">@import</strong> url(//path/to/some/file.css);
Garis miring ganda yang memimpin pernyataan perlu diperlakukan sebagai URL ke sumber daya jarak jauh di internet dan, oleh karena itu, pernyataan @import ini perlu ditempatkan, kata demi kata, dalam file CSS yang dikompilasi.
Tangkapan yang bagus. Anda juga dapat @import
sebuah file .css
, tetapi sepertinya file tersebut secara eksplisit memeriksa ekstensi .css
. Berikut ini dapat berfungsi sebagai solusi:
<strong i="9">@import</strong> "http://fonts.googleapis.com/css?family=Titillium+Web:400,300,200,600.css";
Tapi sungguh, ini juga harus berhasil:
<strong i="13">@import</strong> "http://fonts.googleapis.com/css?family=Titillium+Web:400,300,200,600";
Libsass tidak boleh "memvalidasi" impor yang menargetkan file jarak jauh (satu di internet). Jika URI di dalam pernyataan impor jauh (yang dapat dipastikan dengan melihat apakah itu berisi urutan //
), maka libsass harus melemparkan seluruh pernyataan @import
ke dalam CSS.
Saya mencoba contoh Anda di cabang master dan impor muncul di output (walaupun LibSass tidak memindahkannya ke atas file seperti yang dilakukan Ruby Sass) ... sudahkah Anda menariknya dalam beberapa minggu terakhir?
Impor harus berada di bagian atas file. Itu jelas dalam spesifikasi CSS: @import harus di atas.
dikirim dari iPhone saya
Pada 14 Februari 2014, pukul 15:02, Aaron Leung [email protected] menulis:
Saya mencoba contoh Anda di cabang master dan impor muncul di output (walaupun LibSass tidak memindahkannya ke atas file seperti yang dilakukan Ruby Sass) ... sudahkah Anda menariknya dalam beberapa minggu terakhir?
—
Balas email ini secara langsung atau lihat di GitHub.
Kasus uji yang disederhanakan:
.test {
content: '';
}
<strong i="6">@import</strong> url('test.css');
Ruby Sass merestrukturisasi CSS dengan benar sehingga @import
(s) berada di atas:
<strong i="11">@import</strong> url("test.css");
.test {
content: ''; }
Libsass salah menghasilkan:
.test {
content: ''; }
<strong i="15">@import</strong> url('test.css');
Seperti disebutkan di atas, spesifikasi CSS mengatakan: "aturan @import apa pun harus mendahului semua aturan lainnya (kecuali aturan @charset , jika ada)."
Bergantung pada bagaimana Sass disusun, bug ini dapat dan akan menghasilkan kode di mana aturan @import
tidak dimasukkan ke dalam keluaran CSS dengan benar dan kemudian diabaikan.
Bug/perbedaan kecil yang agak terkait di Libsass dan Ruby Sass adalah output dari tes berikut:
<strong i="26">@import</strong> "//example.com/test.css";
Ruby Sas:
<strong i="30">@import</strong> "//example.com/test.css";
Libass:
<strong i="34">@import</strong> url("//example.com/test.css");
Saya tidak memperkirakan masalah apa pun yang timbul dari bug ini secara khusus, namun ini adalah perbedaan yang menarik untuk diperhatikan.
Oke, ini harus diperbaiki sekarang. Ayo cobalah.
Komentar yang paling membantu
Kasus uji yang disederhanakan:
Ruby Sass merestrukturisasi CSS dengan benar sehingga
@import
(s) berada di atas:Libsass salah menghasilkan:
Seperti disebutkan di atas, spesifikasi CSS mengatakan: "aturan @import apa pun harus mendahului semua aturan lainnya (kecuali aturan @charset , jika ada)."
Bergantung pada bagaimana Sass disusun, bug ini dapat dan akan menghasilkan kode di mana aturan
@import
tidak dimasukkan ke dalam keluaran CSS dengan benar dan kemudian diabaikan.Bug/perbedaan kecil yang agak terkait di Libsass dan Ruby Sass adalah output dari tes berikut:
Ruby Sas:
Libass:
Saya tidak memperkirakan masalah apa pun yang timbul dari bug ini secara khusus, namun ini adalah perbedaan yang menarik untuk diperhatikan.