2012-01-24 2 views
2

Quand j'ai entendu parler de LESS, j'ai d'abord pensé qu'ils étaient généralement pré-traités dans des fichiers css, donc les navigateurs ne rencontrent que des fichiers CSS, pas des fichiers MOINS. Cependant, en utilisant le plugin LESS pour Play Framework, je viens de voir que mon navigateur Chrome lit et interprète réellement les fichiers LESS. LESS est censé être pris en charge dans tous les principaux navigateurs. Ainsi, les sites Web modernes ne servent-ils que des fichiers MOINS, ou les précompilent-ils en CSS? Comment fonctionne le plugin LESS dans Play Framework? Est-ce qu'il injecte un extrait Javascript qui les interprète côté client?Comment fonctionne le plugin LESS dans Play Framework?

Que se passe-t-il ici?

Répondre

2

Si vous utilisez le Lunatech LESS plugin pour jouer! 1, il semble qu'il compile réellement les fichiers less à la volée en utilisant Asual LESS et le sert ensuite statiquement. Un extrait:

/** 
* Get the CSS for this less file either from the cache, or compile it. 
*/ 
public String get(File lessFile) { 
    String cacheKey = "less_" + lessFile.getPath() + lastModifiedRecursive(lessFile); 
    String css = Cache.get(cacheKey, String.class); 
    if(css == null) { 
     css = compile(lessFile); 
     Cache.set(cacheKey, css); 
    } 
    return css; 
} 

protected String compile(File lessFile) { 
    try { 
     return lessEngine.compile(lessFile); 
    } catch (LessException e) { 
     return handleException(lessFile, e); 
    } 
} 

lessEngine est une instance com.asual.lesscss.LessEngine. Comme d'autres l'ont fait remarquer, les manières les plus courantes d'utiliser LESS consistent à les compiler vous-même avant de servir du contenu ou à utiliser le plug-in JavaScript lesscss pour que le client les compile au moment de l'exécution.

+0

Donc le fait que mon navigateur voit des fichiers LESS réels (foo.less) ne signifie pas qu'il interprète moins ... Je vois. Je suppose qu'il a encore 'type =" text/css "' même s'il se termine par un '.less'. – ripper234

1

MOINS css est "~ compilé" par une bibliothèque javascript (et devrait être fait côté serveur pour une utilisation en production). Vous pouvez lire plus sur leur site: http://lesscss.org/#-client-side-usage

+0

Mais mon Chrome semble comprendre les fichiers LESS natifs. J'utilise Play Framework LESS plugin - J'ai fait la question autour de Play ... Je ne suis pas sûr si la réponse est générique ou non. – ripper234

+0

Chrome ne le comprend pas sans JavaScript qui gère le fichier '.less'. – ceejayoz

+0

@ceejayoz - alors peut-être que je sers des JS pour ça et je ne le sais même pas. Hmm. – ripper234

0

Les deux sont des options. Jouer! 2.0 aura un support intégré pour compiler LESS du côté serveur (et aussi CoffeeScript).

+0

Alors, comment fonctionne le module LESS par défaut? Je n'ai pas fait de réglages ou de configuration sauf l'installation du module, et les fichiers MOINS ont juste commencé à fonctionner ... alors je me demande comment ils fonctionnent. – ripper234

+0

Je n'ai pas d'expérience du module LESS sur Play! 1. Ce ne sera pas du tout un module sous 2.0, il sera intégré. –

+1

La façon dont nous l'utilisons, pas spécifique au jeu, est d'utiliser 'lessc' pour compiler le LESS en CSS où nous pouvons le voir . Pas de confusion, pas d'automatisation. –

Questions connexes