No meu arquivo Scss, tenho esta linha:
<strong i="6">@import</strong> url(http://fonts.googleapis.com/css?family=Titillium+Web:400,300,200,600);
Quando o arquivo é compilado com libsass, a linha @import é completamente apagada e não aparece no arquivo de saída.
A linha @import deve ser copiada, literalmente, para o arquivo CSS final porque ela não tem como destino um arquivo local. Ele precisa aparecer no arquivo CSS para que minha fonte seja carregada corretamente.
Ruby Sass se comporta corretamente. Ele move a instrução @import , literalmente, para o arquivo CSS compilado.
Ao consertar isso, não é suficiente testar a presença de http://
. Muitas vezes, as pessoas usarão uma URL sem protocolo para que a importação funcione nas páginas HTTP e HTTPS. Um exemplo disso seria:
<strong i="20">@import</strong> url(//path/to/some/file.css);
As barras duplas que precedem a instrução precisam ser tratadas como uma URL para um recurso remoto na Internet e, portanto, essa instrução @import precisa ser colocada, literalmente, no arquivo CSS compilado.
Boa pegada. Você também pode @import
a .css
arquivo, mas parece que está verificando explicitamente por uma extensão .css
. O seguinte pode servir como uma solução alternativa:
<strong i="9">@import</strong> "http://fonts.googleapis.com/css?family=Titillium+Web:400,300,200,600.css";
Mas, realmente, isso deve funcionar também:
<strong i="13">@import</strong> "http://fonts.googleapis.com/css?family=Titillium+Web:400,300,200,600";
O Libsass não deve "validar" importações que visam um arquivo remoto (um na Internet). Se o URI dentro da instrução de importação for remoto (o que pode ser verificado verificando se contém uma sequência //
), então a libsass deve simplesmente lançar toda a instrução @import
no CSS.
Tentei seu exemplo no branch master e a importação aparece na saída (embora o LibSass não o mova para o início do arquivo da maneira que o Ruby Sass faz) ... você puxou nas últimas semanas?
A importação deve estar no início do arquivo. Isso está claramente na especificação CSS: @import deve estar no topo.
Enviado do meu iPhone
Em 14 de fevereiro de 2014, às 15h02, Aaron Leung [email protected] escreveu:
Tentei seu exemplo no branch master e a importação aparece na saída (embora o LibSass não o mova para o início do arquivo da maneira que o Ruby Sass faz) ... você puxou nas últimas semanas?
-
Responda a este e-mail diretamente ou visualize-o no GitHub.
Um caso de teste simplificado:
.test {
content: '';
}
<strong i="6">@import</strong> url('test.css');
Ruby Sass reestrutura corretamente o CSS de forma que @import
(s) fiquem no topo:
<strong i="11">@import</strong> url("test.css");
.test {
content: ''; }
Libsass produz incorretamente:
.test {
content: ''; }
<strong i="15">@import</strong> url('test.css');
Conforme observado acima, a especificação CSS diz: "quaisquer regras @import devem preceder todas as outras regras (exceto a regra @charset , se houver)."
Dependendo de como o Sass está estruturado, este bug pode e irá produzir código onde @import
regras não são inseridas na saída CSS corretamente e são subsequentemente ignoradas.
Um pequeno bug / diferença relacionado em Libsass e Ruby Sass é o resultado do seguinte teste:
<strong i="26">@import</strong> "//example.com/test.css";
Ruby Sass:
<strong i="30">@import</strong> "//example.com/test.css";
Libsass:
<strong i="34">@import</strong> url("//example.com/test.css");
Não prevejo nenhum problema decorrente desse bug em particular, porém é uma diferença interessante a se notar.
Ok, isso deve ser consertado agora. Por favor, tente.
Comentários muito úteis
Um caso de teste simplificado:
Ruby Sass reestrutura corretamente o CSS de forma que
@import
(s) fiquem no topo:Libsass produz incorretamente:
Conforme observado acima, a especificação CSS diz: "quaisquer regras @import devem preceder todas as outras regras (exceto a regra @charset , se houver)."
Dependendo de como o Sass está estruturado, este bug pode e irá produzir código onde
@import
regras não são inseridas na saída CSS corretamente e são subsequentemente ignoradas.Um pequeno bug / diferença relacionado em Libsass e Ruby Sass é o resultado do seguinte teste:
Ruby Sass:
Libsass:
Não prevejo nenhum problema decorrente desse bug em particular, porém é uma diferença interessante a se notar.