在this討論中發現了一個很好的程序,它將CSS文件合併爲一個,以加速並緊固CSS加載。它的工作原理,使我所有的CSS文件成爲一個小堆,但頁面顯示爲文本(網頁成爲一個CSS文件,Apache認爲)什麼可能是錯的?通過智能自動化php腳本將CSS和JAVASCRIPT結合起來
我做了什麼:我將下面的腳本保存爲一個php文件,並將其包含在我的頁面中,並將url更改爲帶有它們的css文件。 CSS加載正常,但WEBPAGE在瀏覽器中顯示爲純文本!雖然所有的CSS都在那裏,其餘的PHP生成的項目也只是瀏覽器應該加載的東西是純文本,而不是HTML網站......任何線索?
<?php
header('Content-type: text/css');
ob_start("compress");
function compress($buffer) {
/* remove comments */
$buffer = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $buffer);
/* remove tabs, spaces, newlines, etc. */
$buffer = str_replace(array("\r\n", "\r", "\n", "\t", ' ', ' ', ' '), '', $buffer);
return $buffer;
}
/* your css files */
include('master.css');
include('typography.css');
include('grid.css');
include('print.css');
include('handheld.css');
ob_end_flush();
?>
此外改進可以在以後由即使提高其強度,一旦工作:
"; }"
>"}"
(2個字符)
"{ "
>"{"
(1個字符)
" {"
>"{"
(1char)
" :"
>":"
(1個字符)
": "
>":"
(1個字符) " ,"
>","
(1個字符)
", "
>","
(1個字符) " ("
>"("
(1個字符)
"("
>"("
(1個字符) ")"
>")"
(1個字符)
") "
>")"
(1個字符)
......另外,就像一個側面提示:如果你對PHP非常熟悉,你可以通過將壓縮/縮小的CSS緩存到一個靜態文件來完成自己和web服務器的巨大忙碌,所以它不必分析所有的東西與每一個頁面加載。客戶端瀏覽器將緩存它很好,但CSS可能不會經常改變所有解析每個請求。或者,根據需要進行手動縮減也可以減輕服務器負擔。 – tadamson 2010-12-09 05:43:03