mirror of
https://github.com/mrclay/minify.git
synced 2025-08-13 17:44:00 +02:00
+ README.txt
min/config.php: removed $minifyAllowBase option and reorganized file min/index.php: added option to send far-off expires if "&\d" matches query string
This commit is contained in:
81
min/README.txt
Normal file
81
min/README.txt
Normal file
@@ -0,0 +1,81 @@
|
|||||||
|
The files in this directory represent the default Minify setup designed to ease
|
||||||
|
integration with your site. Out-of-the-box, Minify can combine and minify files
|
||||||
|
and serve them with HTTP compression and cache headers.
|
||||||
|
|
||||||
|
|
||||||
|
RECOMMENDED
|
||||||
|
|
||||||
|
It's recommended to edit config.php to set $minifyCachePath to a writeable
|
||||||
|
directory on your system. This will slightly improve the performance of each
|
||||||
|
request.
|
||||||
|
|
||||||
|
|
||||||
|
MINIFYING A SINGLE FILE
|
||||||
|
|
||||||
|
Let's say you want to serve this file:
|
||||||
|
http://example.com/wp-content/themes/default/default.css
|
||||||
|
|
||||||
|
Here's the "Minify URL" for this file:
|
||||||
|
http://example.com/min/?f=wp-content/themes/default/default.css
|
||||||
|
|
||||||
|
In other words, the "f" argument is set to the file path from root without the
|
||||||
|
initial "/". As CSS files may contain relative URIs, Minify will automatically
|
||||||
|
"fix" these by rewriting them as root relative.
|
||||||
|
|
||||||
|
|
||||||
|
COMBINING MULTIPLE FILES IN ONE DOWNLOAD
|
||||||
|
|
||||||
|
Separate the file paths given to "f" with commas.
|
||||||
|
|
||||||
|
Let's say you have CSS files at these URLs:
|
||||||
|
http://example.com/scripts/jquery-1.2.6.js
|
||||||
|
http://example.com/scripts/site.js
|
||||||
|
|
||||||
|
You can combine these files through Minify by requesting this URL:
|
||||||
|
http://example.com/min/?f=scripts/jquery-1.2.6.js,scripts/site.js
|
||||||
|
|
||||||
|
|
||||||
|
SIMPLIFYING URLS WITH A BASE PATH
|
||||||
|
|
||||||
|
If you're combining files that share the same ancestor directory, you can use
|
||||||
|
the "b" argument to set the base directory for the "f" argument. Do not include
|
||||||
|
the leading or trailing "/" characters.
|
||||||
|
|
||||||
|
E.g., the following URLs will serve the exact same content:
|
||||||
|
http://example.com/min/?f=scripts/jquery-1.2.6.js,scripts/site.js
|
||||||
|
http://example.com/min/?b=scripts&f=jquery-1.2.6.js,site.js
|
||||||
|
|
||||||
|
|
||||||
|
USING THESE URLS IN HTML
|
||||||
|
|
||||||
|
In (X)HTML files, make sure to replace any "&" characters with "&".
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
SPECIFYING ALLOWED DIRECTORIES
|
||||||
|
|
||||||
|
By default, Minify will serve any *.css/*.js files within the DOCUMENT_ROOT. If
|
||||||
|
you'd prefer to limit Minify's access to certain directories, set the
|
||||||
|
$minifyAllowDirs array in config.php. E.g. to limit to the /js and
|
||||||
|
/themes/default directories, use:
|
||||||
|
|
||||||
|
$minifyAllowDirs = array('//js', '//themes/default');
|
||||||
|
|
||||||
|
|
||||||
|
FASTER PERFORMANCE AND SHORTER URLS
|
||||||
|
|
||||||
|
For the best performance, edit groupsConfig.php to pre-specify groups of files
|
||||||
|
to be combined under different keys. E.g., here's an example configuration in
|
||||||
|
groupsConfig.php:
|
||||||
|
|
||||||
|
return array(
|
||||||
|
'js' => array('//js/Class.js', '//js/email.js')
|
||||||
|
);
|
||||||
|
|
||||||
|
This pre-selects the following files to be combined under the key "js":
|
||||||
|
http://example.com/js/Class.js
|
||||||
|
http://example.com/js/email.js
|
||||||
|
|
||||||
|
You can now serve these files with this simple URL:
|
||||||
|
http://example.com/min/?g=js
|
||||||
|
|
@@ -9,33 +9,10 @@
|
|||||||
* For best performance, specify your temp directory here.
|
* For best performance, specify your temp directory here.
|
||||||
* Otherwise Minify will have to load extra code to guess.
|
* Otherwise Minify will have to load extra code to guess.
|
||||||
*/
|
*/
|
||||||
$minifyCachePath = 'c:\\xampp\\tmp';
|
|
||||||
//$minifyCachePath = 'c:\\WINDOWS\Temp';
|
//$minifyCachePath = 'c:\\WINDOWS\Temp';
|
||||||
//$minifyCachePath = '/tmp';
|
//$minifyCachePath = '/tmp';
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Manually set the path to Minify's lib folder
|
|
||||||
*/
|
|
||||||
//$minifyLibPath = '../lib';
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Set to true to disable the "f" GET parameter for specifying files.
|
|
||||||
* Only the "g" parameter will be considered.
|
|
||||||
*/
|
|
||||||
$minifyGroupsOnly = false;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Allows specification of base directory via the "b" GET parameter.
|
|
||||||
* E.g. these are the same:
|
|
||||||
* ?f=jsFiles/file1.js,jsFiles/file2.js
|
|
||||||
* ?b=jsFiles&f=file1.js,file2.js
|
|
||||||
*/
|
|
||||||
$minifyAllowBase = true;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* If you'd like to restrict the "f" option to files within/below
|
* If you'd like to restrict the "f" option to files within/below
|
||||||
* particular directories below DOCUMENT_ROOT, set this here.
|
* particular directories below DOCUMENT_ROOT, set this here.
|
||||||
@@ -44,4 +21,17 @@ $minifyAllowBase = true;
|
|||||||
*
|
*
|
||||||
* // = DOCUMENT_ROOT
|
* // = DOCUMENT_ROOT
|
||||||
*/
|
*/
|
||||||
$minifyAllowDirs = array('//js', '//css');
|
//$minifyAllowDirs = array('//js', '//css');
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Manually set the path to Minify's lib folder
|
||||||
|
*/
|
||||||
|
//$minifyLibPath = 'lib';
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set to true to disable the "f" GET parameter for specifying files.
|
||||||
|
* Only the "g" parameter will be considered.
|
||||||
|
*/
|
||||||
|
$minifyGroupsOnly = false;
|
||||||
|
@@ -33,9 +33,11 @@ if (isset($_GET['g'])) {
|
|||||||
// Groups expects the group key as PATH_INFO
|
// Groups expects the group key as PATH_INFO
|
||||||
// we want to allow ?g=groupKey
|
// we want to allow ?g=groupKey
|
||||||
$_SERVER['PATH_INFO'] = '/' . $_GET['g'];
|
$_SERVER['PATH_INFO'] = '/' . $_GET['g'];
|
||||||
Minify::serve('Groups', array(
|
$serveOpts['groups'] = (require MINIFY_MIN_DIR . '/groupsConfig.php');
|
||||||
'groups' => (require MINIFY_MIN_DIR . '/groupsConfig.php')
|
if (preg_match('/&\\d/', $_SERVER['QUERY_STRING'])) {
|
||||||
));
|
$serveOpts['maxAge'] = 31536000;
|
||||||
|
}
|
||||||
|
Minify::serve('Groups', $serveOpts);
|
||||||
|
|
||||||
} elseif (!$minifyGroupsOnly && isset($_GET['f'])) {
|
} elseif (!$minifyGroupsOnly && isset($_GET['f'])) {
|
||||||
|
|
||||||
@@ -57,9 +59,7 @@ if (isset($_GET['g'])) {
|
|||||||
}
|
}
|
||||||
// Version1 already does validation. All we want is to prepend "b"
|
// Version1 already does validation. All we want is to prepend "b"
|
||||||
// to each file if it looks right.
|
// to each file if it looks right.
|
||||||
$base = ($minifyAllowBase
|
$base = (isset($_GET['b']) && preg_match('@^[^/.]+(?:/[^/.]+)*$@', $_GET['b']))
|
||||||
&& isset($_GET['b'])
|
|
||||||
&& preg_match('@^[^/.]+(?:/[^/.]+)*$@', $_GET['b']))
|
|
||||||
? '/' . $_GET['b'] . '/'
|
? '/' . $_GET['b'] . '/'
|
||||||
: '/';
|
: '/';
|
||||||
// Version1 expects ?files=/js/file1.js,/js/file2.js,/js/file3.js
|
// Version1 expects ?files=/js/file1.js,/js/file2.js,/js/file3.js
|
||||||
|
31
min/min_group_uri.php
Normal file
31
min/min_group_uri.php
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Function min_group_uri()
|
||||||
|
*
|
||||||
|
* @package Minify
|
||||||
|
*/
|
||||||
|
|
||||||
|
require_once dirname(__FILE__) . '/lib/Minify/Build.php';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get a timestamped URI to a minified resource using the default Minify install
|
||||||
|
*
|
||||||
|
* <code>
|
||||||
|
* <link rel="stylesheet" type="text/css" href="<?php min_group_uri('css'); ?>" />
|
||||||
|
* <script type="text/javascript" src="<?php min_group_uri('js'); ?>"></script>
|
||||||
|
* </code>
|
||||||
|
*
|
||||||
|
* @param string $group a key of the array in groupsConfig.php
|
||||||
|
* @param string $ampersand '&' or '&' (default '&')
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
function min_group_uri($group, $ampersand = '&')
|
||||||
|
{
|
||||||
|
static $gc = false;
|
||||||
|
if (false === $gc) {
|
||||||
|
$gc = (require dirname(__FILE__) . '/groupsConfig.php');
|
||||||
|
}
|
||||||
|
$b = new Minify_Build($gc[$group]);
|
||||||
|
Minify_Build::$ampersand = $ampersand;
|
||||||
|
return $b->uri('/' . basename(dirname(__FILE__)) . '/?g=' . $group);
|
||||||
|
}
|
Reference in New Issue
Block a user