我想会发生以下情况:
有过程的自动化服务器端。
只要能够引用LESS文件我会在我的代码CSS文件。
用户返回精缩CSS,而不是LESS文件 - 高速缓存,所以编译器并不需要运行,除非LESS文件已被更新。
对于这个与我的网域内的任何地方引用的任何文件LESS工作。
我发现Lessphp ,但文档不是很清楚,也没有说明如何动态地得到任何LESS文件给它。 我想我会张贴我是如何得到这一切工作,我还没有看到过如何使用PHP来实现这一目标运行。
我想会发生以下情况:
有过程的自动化服务器端。
只要能够引用LESS文件我会在我的代码CSS文件。
用户返回精缩CSS,而不是LESS文件 - 高速缓存,所以编译器并不需要运行,除非LESS文件已被更新。
对于这个与我的网域内的任何地方引用的任何文件LESS工作。
我发现Lessphp ,但文档不是很清楚,也没有说明如何动态地得到任何LESS文件给它。 我想我会张贴我是如何得到这一切工作,我还没有看到过如何使用PHP来实现这一目标运行。
这是假设LESSPHP v0.3.8 +不确定有关早期版本,但你会得到它是如何工作的,如果它不开箱的要点。
<link rel="stylesheet" type="text/css" href="styles/main.less" />
如果您正在使用less.js编译客户端,请确保您更改rel="stylesheet/less"
到rel="stylesheet"
1)抓斗Lessphp我放置在这些文件/www/compilers/lessphp/
这个演示的上下文
2)做一个PHP脚本,我们可以扔掉LESS文件。 这将涉及缓存,编译到CSS和返回CSS作为响应。 我已经把这个文件/www/compilers/
并把它称为lessphp.php
大部分代码是在Lessphp现场,除了有它的错误,我已经添加在最后的响应。
<?php
require "lessphp/lessc.inc.php";
$file = $_GET["file"];
function autoCompileLess($inputFile, $outputFile) {
// load the cache
$cacheFile = $inputFile.".cache";
if (file_exists($cacheFile)) {
$cache = unserialize(file_get_contents($cacheFile));
} else {
$cache = $inputFile;
}
$less = new lessc;
$less->setFormatter("compressed");
$newCache = $less->cachedCompile($cache);
if (!is_array($cache) || $newCache["updated"] > $cache["updated"]) {
file_put_contents($cacheFile, serialize($newCache));
file_put_contents($outputFile, $newCache['compiled']);
}
}
autoCompileLess('../' . $file, '../' . $file . '.css');
header('Content-type: text/css');
readfile('../' . $file . '.css');
?>
这将编译LESS文件(例如, styles/main.less
)的缓存文件和CSS文件(例如, styles/main.less.css
)。
3)添加mod_rewrite
规则,使任何减档请求重定向到我们的编译器用户,给它的路径。 这是摆在根.htaccess
文件。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^([^.]*\.less)$ compilers/lessphp.php?file=$1 [R,QSA,L]
</ifModule>
如果您在使用WordPress,此规则将需要来之后-即使WordPress是一个子目录,它似乎覆盖这些规则,LESS编译不会为它存在以下(目录明智)的WordPress的引用文件发生.htaccess
规则。
4)你更少的代码应该相对于编译器的位置相对引用。 此外,如果是空的属性,如Lessphp编译器将失败。 background-color: ;
如果一切运作良好,应会出现以下情况:
直接浏览你的文件LESS http://domain.com/styles/main.less
被自动重定向到http://domain.com/compilers/lessphp?file=styles/main.less
呈现缩小的带有CSS
main.less.css
和main.less.cache
应在同一目录现在已成为你的LESS文件
上次修改的日期不应该改变,除非你更新你的LESS文件