Как работает плагин LESS в Play Framework? - PullRequest
2 голосов
/ 24 января 2012

Когда я услышал о LESS, я первоначально подумал, что они обычно предварительно обрабатываются в файлы CSS, поэтому браузеры просто сталкиваются с файлами CSS, а не с файлами LESS.

Однако, используя плагин LESS для Play Framework , я только что увидел, что мой браузер Chrome действительно читает и интерпретирует файлы LESS. Заявлено, что LESS поддерживается во всех основных браузерах. Итак, современные веб-сайты просто обслуживают файлы LESS или они предварительно компилируют их в CSS? Как работает плагин LESS в Play Framework? Внедряет ли он фрагмент Javascript, который интерпретирует их на стороне клиента?

Что на самом деле здесь происходит?

Ответы [ 3 ]

2 голосов
/ 25 января 2012

Если вы используете Lunatech LESS плагин для Play!1, похоже, что он на самом деле компилирует less файлы на лету, используя Asual LESS , а затем обрабатывает их статически.Выдержка:

/**
 * 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 - это com.asual.lesscss.LessEngine экземпляр.

Как уже отмечали другие, более распространенные способы использования LESS - это компилировать их самостоятельно перед передачей контента.или с помощью плагина lesscss JavaScript, чтобы клиент компилировал их во время выполнения.

1 голос
/ 24 января 2012

LESS css "~ компилируется" библиотекой javascript (и должен выполняться на стороне сервера для производственного использования). Вы можете прочитать больше на их сайте: http://lesscss.org/#-client-side-usage

0 голосов
/ 24 января 2012

Оба варианта. Играть! 2.0 будет иметь встроенную поддержку для компиляции LESS на стороне сервера (а также CoffeeScript).

...