스타일 시트를 축소하고 압축하는 것이 가장 좋은 방법은 직접 처리하는 것입니다. 다음 코드를 확인하십시오 :
<?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, d M Y H:i:s', (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("\r\n", "\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되는 등의 파일 형식을 설정
헤더
- .
- 캐시 제어에 대해
Last-Modified
및 Expires
헤더를 설정합니다 (1 주일 조금 넘게 설정하면 변경할 수 있습니다).
는 스크립트의 축소 및 GZIP ob_start
를 사용
- , 우리는이 파일을 GZIP뿐만 아니라 사용자 정의 기능
compress
을 실행하도록 지시.
compress
은 브라우저로 보낼 때 모든 CSS 주석과 공백을 제거합니다. 즉, 모든 주석을 유지하고 소스 파일에서 원하는대로 편집하여보다 쉽게 편집 할 수 있지만 최소한 브라우저로만 보내십시오. 스타일 시트를 가져올 require
를 사용
스타일
- . 원하는만큼의 스타일 시트에 대해 이렇게하십시오. 그들은 모두 단일 HTTP 요청으로 사용자에게 배달됩니다.
당신은 당신을 일반 CSS 파일로 파일에 전화 할게 새 파일
사용.
<style type="text/css" src="/path/to/css-script.php"></style>
결론
여러 멋진 일을하고,이 방법을 사용.
- 캐싱을위한 올바른 헤더를 제공하여 사이트를 신속하게 다시 방문 할 수있게합니다.
- 모든 내용에 추가 공백이나 주석을 포함하지 않습니다.
- 파일 크기를 줄이려면 GZIP을 사용하여 파일을 압축합니다.
- 하나의 HTTP 요청에 모든 스타일 시트를 포함하므로 최적화에 적합합니다.
@import
진술을 사용하는 것을 피하십시오 ... 그 자체로 멋진 것입니다.
- 여러 스타일 시트를 유지하고 PHP 논리를 사용하여 포함하거나 포함하지 않을 수 있습니다.
- 방문자에게 아무런 영향을 미치지 않고 원하는대로 소스 스타일 시트를 간격을두고 주석 처리 할 수 있습니다.
위의 compress
함수는 CSS에 대한 것이므로 생략해도되지만 동일한 방법으로 JavaScript에 사용할 수 있습니다.
사용이 캐시 제어 기술과 함께이 기술을, 당신은 자신에게 멋진 CSS/JS 핸들러를 구축했습니다 : How to force browser to reload cached CSS/JS files?
동적 PHP는 스타일은 무엇인가? –
그래서 플랫 파일과 함께 작동하는 도구를 사용하여 동적으로 생성되는 것을 압축하려고합니다. 그게 조금은 소리가 나 .. 너에게 불가능한가? :) –
어둠 속에서 찌르기이므로 주석으로 추가하고 있습니다. 정적 CSS 파일을 작성한 다음 @import 문으로 동적 파일을 포함하여 정적 파일을 축소하십시오. 그것이 작동하는 경우, 내가 대답으로 추가 할 알려주세요;) BTW, 당신은 @ 수입을 피하기로되어 있지만, 헤이. – picus