58 votes

less.js ne fonctionne pas dans chrome

J'ai remarqué que less.js fonctionne dans firefox mais pas dans Chrome, ou est-ce parce que j'ai fait une erreur ?

<link rel="stylesheet/less" href="css/style.less" />
<script src="http://lesscss.googlecode.com/files/less-1.0.21.min.js"></script>

@highlight: #cb1e16;
@shade1: #cb1e16;
@tone1: #5c6f7d;
@grad1: #e6edf3;
@grad2: #8a8d92;
@text1: #333e44;

header, footer, section, article, nav, aside { display: block; }

.grad {
  background: @grad2;
  background: -moz-linear-gradient(top, @grad1, @grad2 1200px);
  background: -webkit-gradient(linear, 0 0, 0 1200, from(#e6edf3), to(#8a8d92));
}

html {
  .grad;
  min-height: 100%;
}

même si j'essaie html { background: red; } cela ne fonctionne toujours pas dans chrome, ai-je fait une erreur quelque part ?

0 votes

Votre CSS n'est pas censé se trouver dans une balise <style>, même si less.js va s'en mêler ?

0 votes

Non, c'est un lien vers le fichier css ou (.less) less.js info

0 votes

J'ai vérifié votre code dans les deux versions, Firefox et Chrome, toutes deux à jour et dans les deux, il fonctionne ; la seule chose que j'ai remarquée, dans Chrome, votre gradient de fond est inversé. Quelles versions utilisez-vous ?

62voto

Lithium Points 2452

D'après le lien que vous avez fourni : Le navigateur Less.js script ne fonctionne pas actuellement si vous utilisez Chrome et que le chemin d'accès à votre page commence par "file:///" en raison d'un problème connu de Chrome.

0 votes

Apparemment, cela affecte également Safari 6.0 (8536.25).

2 votes

Est-ce que cela peut être résolu en utilisant --disable-web-security & --allow-file-access-from-files ? EDIT : Nevermind, j'ai essayé avec ces paramètres et ça marche. Ugh ! J'aurais dû lire 2 lignes plus bas :))))

0 votes

Cette réponse aurait été meilleure si elle avait inclus au moins une solution de contournement possible du problème !

50voto

Nathan Strutz Points 5877

Lithium a raison, il y a un problème connu de Chrome avec le chargement des fichiers javascript locaux. Il s'agit d'une "fonctionnalité" de sécurité dans Chrome. À ma connaissance, il existe deux solutions de contournement :

  1. Développez vos projets locaux avec un serveur web. Vous pouvez installer et utiliser Apache très facilement, même si la configuration demande un peu de patience. Si vous êtes sous Windows, vous pourrez peut-être installer IIS. Dans ce cas, au lieu de double-cliquer sur un fichier HTML, vous le parcourrez à partir de http://localhost/

  2. Ajoutez le commutateur de ligne de commande -allow-file-access-from-files à votre raccourci et Chrome vous permettra de charger LESS.JS sans problème.

Je suis tenté de mentionner l'utilisation d'une version différente du convertisseur less, comme le ruby lessc ou l'un des portages vers PHP ou .NET, mais less.js est plus actuel, et je pense que vous devriez le conserver.

1 votes

7 votes

Le moyen le plus simple que je connaisse pour démarrer un serveur web local est de faire python -m SimpleHTTPServer dans la racine de votre site.

0 votes

Moi aussi, je recommande d'utiliser un serveur web local. Essayez node.js et le Connecter la bibliothèque .static() méthode en tant que serveur web de développement simple pour le matériel statique pour être en mesure d'utiliser less.js (et éviter tout autre potentiel file:/// bizarrerie).

14voto

pixelass Points 1398

Dans le cas où quelqu'un d'autre aurait besoin d'une solution rapide pour Mac OS X (testé sur Lion)

"Procédure pas à pas pour les nuls"



Spécial thx pour le Lithium, Nathan Strutz + les gars de ce post sur les super-Utilisateur



Créer un script AppleScript

Apple Script Editor

avec la commande suivante


do shell script "/Applications/Google\\ Chrome.app/Contents/MacOS/Google\\ Chrome-allow-file-access-from-files"

AppleScript

Puis les enregistrer en tant que Demande

save as Application

(J'ai mis ceci dans mon dock et a ajouté une alternative icône de google Chrome pour un accès rapide)

add to Dock

IMPORTANT: Chrome doit être fermé pour que ce script(App) au travail.

0 votes

Je continue à obtenir une erreur de syntaxe : Expected """ but found unknown token. Une idée ?

1 votes

Les antislashs doivent être échappés. Devrait être do shell script "/Applications/Google\\ Chrome.app/Contents/MacOS/Google\\ Chrome -allow-file-access-from-files"

4voto

MrClean Points 168

En fait, contrairement à la réponse acceptée, cela fonctionne bien. Je suis sur Chrome 19, Mac OS X, le contexte est une extension Chrome. J'ai rencontré le même problème. J'ai commencé à expérimenter différentes façons de l'inclure, en changeant le texte dans le rel, le type, le href et ainsi de suite.

Cela fonctionne, la clé est href="css/styles.css (utilisez .css, pas .less) :

<link rel="stylesheet/less" type="text/css" href="css/styles.css" />
<script src="libs/less-1.3.0.min.js" type="text/javascript"></script>

Les styles sont joliment appliqués et la console JavaScript de Chrome affiche ce qui suit (légèrement dépouillé pour plus de clarté) :

less: parsed /css/styles.css successfully. less-1.3.0.min.js:8
less: css generated in 33ms

Je sais que l'on n'est pas censé utiliser des feuilles de style CSS compilées côté client, mais dans le contexte d'une extension Chrome, il n'y a pas d'autre alternative que les feuilles de style CSS ordinaires (beurk). Vous ne pouvez pas non plus demander la feuille de style à un serveur car le client sera hors ligne de temps en temps.

0 votes

Uncaught Error: NETWORK_ERR: XMLHttpRequest Exception 101 pour moi. :(

0 votes

Comment obtenir cette verbosité à partir de moins ?

0 votes

J'ai obtenu la verbosité automatiquement lorsque Less a été inclus côté client. Cela a peut-être été supprimé dans une version ultérieure de Less ? (Je n'ai pas testé.)

3voto

bitmind Points 671

Je vous recommande d'utiliser une version compilée. du fichier LESS. Vous pouvez le faire par exemple sous Windows avec WinLess ou SimpLESS.

J'utilise Winless. Il compile automatiquement mes fichiers .css lorsque je sauvegarde mon code.

Vous devez également exécuter votre exemple sur un serveur web comme IIS / tomcat / Jboss.

J'espère que cela aidera

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X