URL rewriting when minifying css file outside document root
Closed this issue · 2 comments
GoogleCodeExporter commented
While minifying a bootstrap library css file I noticed that if file is not
under document root and not symlinked in document root the url rewriter blindly
fails trying to remove document root path from absolute url.
Minify commit/version: 2.1.7
PHP version: any
What steps will reproduce the problem?
groupsConfig.php:
return array(
'test2.css'=> array (
'/var/h/lib/bootstrap-3.0.3/css/test.css',
)
);
test.css:
@font-face {
font-family: 'Glyphicons Halflings';
src: url('../fonts/glyphicons-halflings-regular.eot');
}
debug output:
/* Minify_CSS_UriRewriter::$debugText
docRoot : /var/www/www.example.org/public_html
currentDir : /var/h/lib/bootstrap-3.0.3/css
file-relative URI : ../fonts/glyphicons-halflings-regular.eot
path prepended :
/var/h/lib/bootstrap-3.0.3/css/../fonts/glyphicons-halflings-regular.eot
docroot stripped : hicons-halflings-regular.eot <<<<<------- DOCROOT SHOULD
NOT BE STRIPPED AS PATH WAS ABSOLUTE
traversals removed : hicons-halflings-regular.eot
*/
/* test.css */
/* 1 */
/* 2 */ @font-face {
/* 3 */ font-family: 'Glyphicons Halflings';
/* 4 */ src: url('hicons-halflings-regular.eot');
/* 5 */ }
/* 6 */
I could not find any documentation about wether or not it should be possible to
minify files out of document root, but a possible easy solution would be to
modify UriRewriter line 163:
// strip doc root
$path = substr($path, strlen($realDocRoot));
to check if $path contains $realDocRoot before cutting it.
Original issue reported on code.google.com by lui...@gmail.com
on 26 Dec 2013 at 10:46
GoogleCodeExporter commented
After a bit experimenting, there is no use in generating correct paths outside
of document root.
Even if we were able to generate the correct path in the example, the fonts
would not be available as they are not reachable by the web server.
However, I still think this is a bug since min generated a wrong truncated path
without any error or notice.
Original comment by lui...@gmail.com
on 26 Dec 2013 at 3:29
GoogleCodeExporter commented
You must configure Minify to handle URLs served from outside the docroot.
http://code.google.com/p/minify/wiki/UriRewriting#Aliases_/_Symlinks_/_Virtual_D
irectories
Original comment by mrclay....@gmail.com
on 26 Dec 2013 at 4:37
- Changed state: Invalid