mirror of
https://github.com/mrclay/minify.git
synced 2025-02-19 14:34:39 +01:00
Allow specifying files via $min_symlinks paths
If you have an alias/symlink like "//~name" => "/full/path", then you can now serve with the more logical URL http://example.com/min/?f=~name/foo.css Fixes #137
This commit is contained in:
parent
db8915b2db
commit
7c607ff932
@ -52,6 +52,7 @@ $server = new Minify($cache);
|
|||||||
// TODO probably should do this elsewhere...
|
// TODO probably should do this elsewhere...
|
||||||
$min_serveOptions['minifierOptions']['text/css']['docRoot'] = $env->getDocRoot();
|
$min_serveOptions['minifierOptions']['text/css']['docRoot'] = $env->getDocRoot();
|
||||||
$min_serveOptions['minifierOptions']['text/css']['symlinks'] = $min_symlinks;
|
$min_serveOptions['minifierOptions']['text/css']['symlinks'] = $min_symlinks;
|
||||||
|
$min_serveOptions['minApp']['symlinks'] = $min_symlinks;
|
||||||
// auto-add targets to allowDirs
|
// auto-add targets to allowDirs
|
||||||
foreach ($min_symlinks as $uri => $target) {
|
foreach ($min_symlinks as $uri => $target) {
|
||||||
$min_serveOptions['minApp']['allowDirs'][] = $target;
|
$min_serveOptions['minApp']['allowDirs'][] = $target;
|
||||||
|
@ -48,8 +48,8 @@ class Minify_CSS_UriRewriter {
|
|||||||
);
|
);
|
||||||
self::$_currentDir = self::_realpath($currentDir);
|
self::$_currentDir = self::_realpath($currentDir);
|
||||||
self::$_symlinks = array();
|
self::$_symlinks = array();
|
||||||
|
|
||||||
// normalize symlinks
|
// normalize symlinks in order to map to link
|
||||||
foreach ($symlinks as $link => $target) {
|
foreach ($symlinks as $link => $target) {
|
||||||
$link = ($link === '//')
|
$link = ($link === '//')
|
||||||
? self::$_docRoot
|
? self::$_docRoot
|
||||||
|
@ -33,11 +33,22 @@ class Minify_Controller_MinApp extends Minify_Controller_Base {
|
|||||||
array(
|
array(
|
||||||
'groupsOnly' => false,
|
'groupsOnly' => false,
|
||||||
'groups' => array(),
|
'groups' => array(),
|
||||||
|
'symlinks' => array(),
|
||||||
)
|
)
|
||||||
,(isset($options['minApp']) ? $options['minApp'] : array())
|
,(isset($options['minApp']) ? $options['minApp'] : array())
|
||||||
);
|
);
|
||||||
unset($options['minApp']);
|
unset($options['minApp']);
|
||||||
|
|
||||||
|
// normalize $symlinks in order to map to target
|
||||||
|
$symlinks = array();
|
||||||
|
foreach ($localOptions['symlinks'] as $link => $target) {
|
||||||
|
if (0 === strpos($link, '//')) {
|
||||||
|
$link = rtrim(substr($link, 1), '/') . '/';
|
||||||
|
$target = rtrim($target, '/\\');
|
||||||
|
$symlinks[$link] = $target;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$sources = array();
|
$sources = array();
|
||||||
$selectionId = '';
|
$selectionId = '';
|
||||||
$firstMissingResource = null;
|
$firstMissingResource = null;
|
||||||
@ -127,6 +138,14 @@ class Minify_Controller_MinApp extends Minify_Controller_Base {
|
|||||||
$uri = $base . $file;
|
$uri = $base . $file;
|
||||||
$path = $this->env->getDocRoot() . $uri;
|
$path = $this->env->getDocRoot() . $uri;
|
||||||
|
|
||||||
|
// try to rewrite path
|
||||||
|
foreach ($symlinks as $link => $target) {
|
||||||
|
if (0 === strpos($uri, $link)) {
|
||||||
|
$path = $target . DIRECTORY_SEPARATOR . substr($uri, strlen($link));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$source = $this->sourceFactory->makeSource(array(
|
$source = $this->sourceFactory->makeSource(array(
|
||||||
'filepath' => $path,
|
'filepath' => $path,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user