Aggiornamento 3/5/2012: I ragazzi Bootstrap hanno risolto questo problema nella versione 2.0.2 di Bootstrap (non ancora rilasciata). Vedi this commit.
Il bug di fondo è che la versione attuale di less.js non consente di utilizzare una variabile per per l'URL() valore direttamente (ad esempio url(@iconWhiteSpritePath)
) - invece si deve utilizzare stringa di interpolazione (ad es url("@{iconWhiteSpritePath}")
) , che realizza la stessa cosa I ragazzi di bootstrap hanno appena aggiornato la loro sintassi per tenere conto di questa stranezza.
risposta originale
mi sono imbattuto nel problema esatto oggi e capito la causa di essa.Dal momento che il tuo stack è qualche versione prima del mio (sto usando Bootstrap 2.0 e less.js 1.2.2) non posso essere sicuro che sia lo stesso problema, ma è probabilmente correlato.
In ogni caso, il problema per me era che Twitter Bootstrap sta definendo alcune variabili:
@iconSpritePath: "../img/glyphicons-halflings.png";
@iconWhiteSpritePath: "../img/glyphicons-halflings-white.png";
E poi utilizzarli direttamente nel valore url() per un background-image in sprites.less:
[class^="icon-"],
[class*=" icon-"] {
display: inline-block;
width: 14px;
height: 14px;
line-height: 14px;
vertical-align: text-top;
background-image: url(@iconSpritePath);
background-position: 14px 14px;
background-repeat: no-repeat;
.ie7-restore-right-whitespace();
}
.icon-white {
background-image: url(@iconWhiteSpritePath);
}
per la discussione in this Github issue che sta causando un problema importante. Quando less.js si strozza su questo valore, l'intera compilazione fallisce.
La buona notizia è che c'è una soluzione a questo problema, fornita da csnover. Basta cambiare questa linea in tree.URL:
if (typeof(window) !== 'undefined' && !/^(?:https?:\/\/|file:\/\/|data:|\/)/.test(val.value) && paths.length > 0) {
a
if (typeof(window) !== 'undefined' && typeof(val.value) !== 'undefined' && !/^(?:https?:\/\/|file:\/\/|data:|\/)/.test(val.value) && paths.length > 0) {
e si dovrebbe essere impostato. In altre parole, ci assicuriamo che val.value sia impostato in modo tale che charAt() non soffochi su un indefinito.
Speriamo che questa soluzione verrà presto impegnata nel progetto e Bootstrap funzionerà con less.js nell'ambiente del browser fuori dalla scatola.
potete inviare i vostri style.less? – Todd
@Todd ha aggiornato il post. Lo style.less funziona bene però. – briangallagher
mostra il foglio di stile caricato/reso all'interno della console? –