所以我有一个CSS文件style.css.在同一目录中,我有images /文件夹.
如何制作一个从另一个文件夹压缩style.css的脚本?
现在我有这个:
<?php
if(isset($_GET['css'])) $file = array('url' => htmlspecialchars($_GET['css']),'type' => 'text/css');
if(isset($_GET['js'])) $file = array('url' => htmlspecialchars($_GET['js']),'type' => 'application/javascript');
if(!isset($file)) exit();
header('Content-type: '.$file['type']);
header('Cache-Control: max-age='.(60*60*6).',must-revalidate');
// whitespace+comment removal,in case gzip is off
function compress($buffer){
global $file;
$buffer = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!','',$buffer);
$buffer = str_replace(array("\r\n","\r","\n","\t",' ',' ',' '),' ',$buffer);
return $buffer;
}
if(extension_loaded('zlib'))
if(substr_count($_SERVER['HTTP_ACCEPT_ENCODING'],'gzip')) ob_start("ob_gzhandler");
else ob_start("compress");
include($file['url']);
ob_end_flush();
?>
并使用像这样的东西:
<style type="text/css">
@import "http://mysite.com/lib/c.php?css=../style.css";
</style>
一切正常,只是css文件中图像的路径不再起作用.
我认为这是因为(images / bg.jpg)成为(../images/bg.jpg)
我可以解决此问题而不必将c.php脚本移动到与样式表相同的目录中吗?
最佳答案
如果您的Web服务器具有此类功能,则可以使用URL重写使内容保持整洁.
使用mod_rewrite的示例:
RewriteRule ^images/style\.css$lib/c.php?css=../style.css
然后,您可以简单地:
@import "http://mysite.com/images/style.css";
我还建议您对脚本进行第二次查看.如果加载此URL,会发生什么?
http://mysite.com/lib/c.php?css=.htpasswd
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。