缩小动态php样式表
所以我一直在使用
Minify压缩我的JS和CSS,这些都一直很顺利,直到我需要压缩一些动态的php样式表.
我试图用htaccess来欺骗它以为它是一个css文件,但后来我意识到它使用的绝对文件路径不会受到mod_rewrite的影响 无论如何,每当我指向一个php文件时,它总是返回’400 Bad Request’.除了编写自己的压缩脚本之外,还有任何想法可以解决这个问题吗? 解决方法
我发现处理缩小和压缩样式表的最佳方法是自己动手.看看这段代码:
<?php header("Content-Type: text/css"); header("Last-Modified: ".gmdate('D,d M Y H:i:s',filemtime($_SERVER['DOCUMENT_ROOT'].$_SERVER['PHP_SELF']))." GMT"); header("Expires: ".gmdate('D,(filemtime($_SERVER['DOCUMENT_ROOT'].$_SERVER['PHP_SELF']) + 691200))." GMT"); //This GZIPs the CSS for transmission to the user //making file size smaller and transfer rate quicker ob_start("ob_gzhandler"); ob_start("compress"); //Function for compressing the CSS as tightly as possible function compress($buffer) { //Remove CSS comments $buffer = preg_replace('!/*[^*]**+([^/][^*]**+)*/!','',$buffer); //Remove tabs,spaces,newlines,etc. $buffer = str_replace(array("rn","r","n","t",' ',' ',' '),$buffer); return $buffer; } //Main style require_once($_SERVER['DOCUMENT_ROOT']."/templates/style/style.css"); //Other style if($php_variable) { require_once($_SERVER['DOCUMENT_ROOT']."/templates/style/other.css"); } ob_end_flush(); ob_end_flush(); ?> 这里有很多事情,所以让我解释一下. 头 >将文件类型设置为CSS. Minify和GZIP >使用ob_start,我们告诉它GZIP这个文件以及运行自定义函数compress. 样式 >使用require导入样式表.为你想要的多种样式表做这件事;它们都会在一个HTTP请求中传递给用户. 使用您的新文件 你将像普通的CSS文件一样调用文件. <style type="text/css" src="/path/to/css-script.php"></style> 结论 使用这种方法,你做了几件很棒的事情. >为缓存提供正确的标题,快速回访您的网站. 您也可以对JavaScript使用相同的方法,虽然上面的压缩函数严格用于CSS,所以我会省略它. 将此技术与此缓存控制技术结合使用,您已经构建了一个非常棒的CSS / JS处理程序:How to force browser to reload cached CSS/JS files? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |