最近没有更新博客,并不是因为没有学习,而是因为没有学到一定程度。不过有些比较工具类的知识却可以拿来小结一下,比如这次所说的文件压缩。
我们都知道web服务器在处理这样的静态文件如图片,js,css的时候所需要的等待时间是十分长的。因此出现了许多的技术来减少传送时间。大家都有接触过xxx.min.js或者xxx.min.css这类的文件.这些文件存储在服务器上.表示已经被工具进行压缩了.不过我们也可以通过服务器脚本将请求的css文件或者js文件压缩后传送。这就是我们要说的minify模块。
minify是一个开源的github项目,可以点击查看项目地址。
至于php与nginx的配置可以参考网络上其他的教程,我们这里就不多介绍。当然可以使用apache或其他服务器。
关于minify的目录如下图所示:
这里我们可以阅读README.txt和MIN.txt。里面有一定的介绍。
如果需要进行版本升级可以阅读UPGRADING.txt。
我们将min文件夹拷贝到网站根目录(目录可自定),这时候可以通过http://localhost/min/ 就能访问到min文件夹下的index.php文件。
如果使用了某某框架导致无法访问min文件夹下的xxx.php文件,可以设置rewrite机制开启访问(暂无具体写法)。接下来我们要做的就是阅读一下index.php文件
Index.php
<?php
/**
* Front controller for default Minify implementation
*
* DO NOT EDIT! Configure this utility via config.php and groupsConfig.php
*
* @package Minify
*/
define('MINIFY_MIN_DIR', dirname(__FILE__));
// set config path defaults 配置文件分别是正式用,测试用以及文件组合用
$min_configPaths = array(
'base' => MINIFY_MIN_DIR . '/config.php',
'test' => MINIFY_MIN_DIR . '/config-test.php',
'groups' => MINIFY_MIN_DIR . '/groupsConfig.php'
);
// check for custom config paths
if (!empty($min_customConfigPaths) && is_array($min_customConfigPaths)) {
$min_configPaths = array_merge($min_configPaths, $min_customConfigPaths);
}
// load config 读取配置文件
require $min_configPaths['base'];
// 如果请求中包含 test的关键字 则使用test-config 配置
if (isset($_GET['test'])) {
include $min_configPaths['test'];
}
require "$min_libPath/Minify/Loader.php";
Minify_Loader::register();
Minify::$uploaderHoursBehind = $min_uploaderHoursBehind;
Minify::setCache(
isset($min_cachePath) ? $min_cachePath : ''
,$min_cacheFileLocking
);
// 压缩文件的根目录 可在config.php文件中配置 默认为网站根目录
if ($min_documentRoot) {
$_SERVER['DOCUMENT_ROOT'] = $min_documentRoot;
Minify::$isDocRootSet = true;
}
$min_serveOptions['minifierOptions']['text/css']['symlinks'] = $min_symlinks;
// auto-add targets to al