2011-12-16 2 views
2

나는 파일의 gzip으로 압축 된 스타일과 스크립트를 올바르게 gzip으로 압축 스타일/스크립트에 대한 MIME 타입을 설정 :Nginx의 :

문제가 올바른 마임 타입을 제공하지 않습니다 및 브라우저가하는 점이다
/scripts.js.gz 
/styles.css.gz 

인식하지 못한다면, 파일이 압축 된 CSS 또는 js (브라우저가 해당 유형을 application/octet-stream으로 인식합니다. 여기서 text/css 정도 여야합니다).

nginx의 mime.type에 다음을 추가했지만 아무런 효과가 없습니다. 나는 파일이 압축되어 있다고 인식하지 못한다.

types { 
    text/css        css.gz; 
    application/x-javascript    js.gz; 
} 

파일에 액세스하려고하면 브라우저는 파일을 다운로드 할 파일로 처리하고 제공하지 않습니다.

답변

1

마임 유형을 변경하지 말고 Gzip Static Module을 사용하여 처리하십시오.

이 기능이 활성화되면 Nginx는 먼저 "file.ext.gz"를 제공하려고 시도하고 활성화되어있는 컨텍스트 (위치 등) 내의 모든 요청에 ​​대해 "file.ext"를 찾지 않습니다.

+0

이것은 내가 무엇을 찾고되지 않습니다, 나는 항상 두 개의 파일을 생성하고 싶지 않은 : 내 솔루션 .css.gz의 위치를 ​​확인한 다음과 같이 해당 위치에서 .gz의 콘텐츠 유형을 수정하는 것입니다 비 압축 및 압축), 나는 자바 스크립트도 스타일을 제공하지 않는 경우가 있지만 mime 형식이 파일이 gzipped 정보와 함께 정확하게 보내지 길 원한다. –

+0

예를 들어,/styles-frontend/-> styles-frontend.css.gz를 다시 작성하여 제공하는 파일도 있습니다. 따라서 주어진 확장자 css.gz에 대해 mimetype을 올바르게 보내야합니다. –

+0

귀하의 의견이 명확하지 않습니다. 당신이 제공하고자하는 file.ext.gz와 같은 파일을 가지고 있습니까? 그렇다면, 정적 모듈이 uri에 존재한다면 (다시 쓰든 그렇지 않든) 정적 모듈이 제공합니다. 그러나 요청에 ".gz"를 추가하지 않고 ".ext"를 요청하십시오. – Dayo

3

나는 아파치에서 오는 동일한 문제가 있었다. 내가 발견 한 문제는 types 블록이 파일 확장자로 .css.gz을 지정하도록 허용하지 않는다는 것입니다. 그러나 location 블록이 있습니다! (

location ~ \.css\.gz$ { 

    add_header Content-Encoding gzip; 
    gzip off; 
    types { 
    text/css gz; 
    } 
} 
관련 문제