2010-06-28 3 views
0

내가 사용 .NET과 간단한 질문은 다음과 같습니다어떻게이 gzip으로 반환 할 수 있습니다 CSS/JS

방법 또는 I는 웹 브라우저

<script type="text/javascript" src="/Scripts/myjsfile.js"/> 

이 gzip으로 압축되어 있음을 알려 할 수 있습니까?

소스에 .gz을 추가 할 수 있습니까?

This article은 매우 훌륭합니다. gzip으로 압축 된 내용을 반환하기 위해 Response.Filter 스트림 객체에 연결하여 내 동적 HTML을 압축하는 방법을 보여줍니다. 하지만 내 css/js는 동적이 아니므로 매 요청마다 CPU주기를 낭비하지 않아도됩니다.

그래서 웹 브라우저에 압축 된 컨텐츠임을 알리거나 이미 알고 있습니까? 헤더

답변

0

태그 응답 :

Content-Encoding: gzip 

업데이트 : 난 그냥 당신의 문자 그대로의 질문에 대답 실현 - 클라이언트가 알 방법 -하지만 당신이 그런 보낼 수 있도록 서버에해야 할 일 . 불행히도 IIS에서는 작동하지 않으므로 현명한 대답을 드릴 수는 없습니다.

아무도 대답하지 않으면 동적 인 일을 스스로 할 수 있으며 그리 느리지는 않습니다. 기본적으로 아파치가하고있는 것은 이것이다 :

  • 가 요청의 Accept-Encoding 헤더 gzip을 포함하는지 여부를 테스트합니다. 만약 그렇다면 그것은, 전송, filename이 있는지 확인, Content-Encoding: gzip 적절한 Content-Type
  • 그렇지 않은 경우와 태그, 그것을 보낼 경우 filename + ".gz" 파일
  • 가있는 경우
  • 후 검사는
  • 을 존재하는 경우 그
  • 이것이 실패하면 404.

즉석에서 파일을 gzip으로 지정할 수도 있습니다. 파일에 두 가지 버전의 파일을 보관하지 않아도되므로 더 경제적입니다 (각 요청마다 압축해야하기 때문에).

+0

filename + ". gz"파일이있는 경우 Apache 검사에 대한 리소스에 대한 링크를 공유해 주실 수 있습니까? 나는 JS 파일을 gzip으로 압축하고 ".gz"확장자를 추가했지만 아무런 효과가없는 것 같습니다. 어떤 종류의 구성 지시어가 작동하도록이 동작을 활성화 할 수 있습니까? – Frodik

0
##################################################### 
# CONFIGURE media caching 
# 
Header unset ETag 
FileETag None 
<FilesMatch "(?i)^.*\.(ico|flv|jpg|jpeg|png|gif|js|css)$"> 
Header unset Last-Modified 
Header set Expires "Fri, 21 Dec 2012 00:00:00 GMT" 
Header set Cache-Control "public, no-transform" 
</FilesMatch> 
# 
##################################################### 

"FilesMatch"를 gzipped로 변경하십시오. 서버가 자동으로 압축되지 않은 파일을 gzip으로 압축하여 브라우저로 보내면 브라우저는 파일을 원래 형식으로 다시 압축합니다.

관련 문제