google.codes를 사용하여 내 css 및 js 파일을 빠르게 축소합니다. 나는 내 CSS와 js 파일에서 수축을 사용하기 위해 .htaccess를 설정했다. 그 이유는 코드에서 다른 js 파일을 참조하는 일부 js 파일 (shadowbox 및 tinymce와 같은)을 사용하기 때문이다. 그래서 내가 아파치와 함께 압축하고있어 또한 gzip으로 일부 js와 CSS 파일을 압축 - 내가 처음으로 gzipping (minify)하고 zlib (수축) 다시 통해 실행됩니다 오버 헤드를 만드는 오전. 또는 아파치는 헤더에서 minify로 설정된 속성을 갖는 이미 gzipped 파일을 무시합니다. 누구나이 경험이 있습니까?수축과 축소의 결합 - 오버 헤드가 발생합니까?
답변
축소 및 수축/gzipping은 잘 작동합니다.
mod 재 작성을 사용하여 모든 CSS/js 파일을 원래 버전과 .css.gz/.js.gz 버전으로 미리 빌드했습니다.
브라우저는 .js/.css 요청을 보내고 서버는 .js.gz/.css.gz의 존재 여부를 확인하고 특정 조건이 일치하면 gzipped 콘텐츠를 반환합니다.
그래서이
RewriteEngine On
RewriteBase/
#Check for browser's Accept-Encoding,
RewriteCond "%{HTTP:Accept-Encoding}" "gzip.*deflate|deflate.*gzip"
#check file name is endswith css or js
RewriteCond %{REQUEST_FILENAME} "\.(css|js)$"
#check existance of .gz file name
RewriteCond %{REQUEST_FILENAME}.gz -s
#rewrite it to .js.gz or .css.gz
RewriteRule ^.*$ %{REQUEST_URI}.gz [L]
#update some response header
<FilesMatch "\.js\.gz$">
AddEncoding gzip .gz
ForceType "text/javascript"
</FilesMatch>
<FilesMatch "\.css\.gz$">
AddEncoding gzip .gz
ForceType "text/css"
</FilesMatch>
감사합니다! 거기에 훌륭한 스크립트가 있습니다! 하지만 도구 축소 (일반적으로 축소하지 않음) Google에서 실제로 압축 및 압축 파일을 보냅니다 및 다음 다시 서버 부분 (아파치 deflate 즉석에서) 할 것이라고 알고 있습니다. 그리고 그것을 두 번 할 때 나는 오버 헤드를 만들고 있는지 궁금해하고 있었다. ..? 미안해 내가 분명하지 않다면 ... –
이중 gzipping을 의미합니까? 나는 브라우저가 2 번 압축을 풀 필요성을 알지 못할 것이기 때문에 그렇게하지 않을 것이라고 생각한다. – YOU
gzip 같은,
기본적으로 (예를 들어 당신의 쉐도우 또는 TinyMCE에 대한) JS에서 즉시로드 JS/CSS 파일에 대한 문제가되지 않는다는 zlib 압축 알고리즘을 사용하여 , 대부분의 바이트 시퀀스는 두 번째로 잘 압축되지 않습니다.
오, 나는 gzip이 zlib 라이브러리를 사용하는지 몰랐다. 나는 그것이 gzip과 deflate의 차이라고 생각했다. gzip 라이브러리를 사용하고 zlib 라이브러리를 사용하여 압축을 푸십시오. 그러나 문제는 파일이 두 배로 압축 될 것인가? 훨씬 작아지지 않을 것이라고 확신하지만, 클라이언트는 먼저 서버에 대해 deflatet을 압축 해제 한 다음 축소 된 파일을 압축 해제해야합니다. 거기에 오버 헤드가 있어야합니다 ..? –
이미 작아지지 않을 것이라는 것을 이미 알고 있다면 왜 그럴까요? :) –
Minify은 Apache를 통해 파일을 제공하지 않으므로 이중 인코딩이 필요하지 않습니다.
DEFLATE 필터를 사용하면 Apache는 매번 요청한 파일을 gzip으로 압축합니다. 첫 번째 요청에서 파일을 gzips로 축소 한 다음 나중에 요청할 수 있도록 미리 압축 된 캐시 된 버전을 보냅니다.
PHP 기반이므로 유연성과 관리 용이성을 위해 성능을 제공하지만 프록시 캐시를 앞에두면 S.Mark의 구성뿐 아니라 성능도 향상됩니다.
정말 좋은 질문입니다! 대답은 무엇인지 모르겠지만 Minify의 저자는 토론 그룹에서 매우 반응이 좋습니다. https://groups.google.com/group/minify – Annie