2016-06-24 6 views
0

임은 아래 스크립트를 사용하여 정적 .svgz 파일 (압축 된 SVG)을 제공하기 위해 노력 :Golang 정적 파일 (SVGZ)는

http.ListenAndServe(":9090", http.FileServer(http.Dir("/srv/www/htdocs/"))) 

메신저 아래의 오류가 점점 : 내가하려고하면

This page contains the following errors: 

error on line 1 at column 1: Encoding error 
Below is a rendering of the page up to the first error. 

을 아파치를 통해 동일한 파일을 가져 오면 파일이 제대로 표시됩니다.

해결 방법이 있습니까?

+0

각 서버 반환하지 않습니다 어떤 콘텐츠 유형? – JimB

+0

나도 beego와 같은 결과를 시도했다 – aissa

+0

당신은 그것을 시험해 볼 수있다 : http://97.107.133.88/test.svgz 그리고 http://97.107.133.88:9090/test.svgz – aissa

답변

0

Go http.FileServer은 스니핑 된 파일에 대해 자동으로 Content-Encoding을 추가하지 않습니다. 파일이 미리 압축 된 경우 적절한 값을 추가해야합니다.

헤더에 Content-Encoding: gzip을 추가하고 처리기에서 http.ServeFile을 사용할 수 있습니다. (크롬에서 테스트)

+0

답변을 주셔서 감사합니다. beego FW를 사용하여 어떻게 수행 할 수 있습니까? svgz 파일은 정적 폴더 \ – aissa

0

아파치 헤더 :

HTTP/1.1 200 OK 
Date: Fri, 24 Jun 2016 14:56:03 GMT 
Server: Apache 
Last-Modified: Fri, 24 Jun 2016 14:43:34 GMT 
ETag: "443-5360731fd11b2" 
Accept-Ranges: bytes 
Content-Length: 1091 
Keep-Alive: timeout=15, max=98 
Connection: Keep-Alive 
Content-Type: image/svg+xml 
Content-Encoding: gzip 

이동 헤더 (크롬에서 테스트) : 헤더 :

HTTP/1.1 200 OK 
Accept-Ranges: bytes 
Content-Length: 1091 
Content-Type: image/svg+xml 
Last-Modified: Fri, 24 Jun 2016 14:43:34 GMT 
Date: Fri, 24 Jun 2016 14:54:56 GMT 

아파치는 "GZIP 콘텐츠 인코딩"을 보냅니다.

(무거운 https://groups.google.com/forum/#!topic/golang-nuts/Upzqsbu2zbo에서 영감) 코드 작업

https://play.golang.org/p/eWxqHt9QbM

+0

아래에 있습니다. http://97.107.133.88:9090/test.svgz – aissa

+0

시도해보십시오. nginx에서 Chrome (51.0.2704.106)으로 작업하고 Firefox (45.0.2)에서 실패합니다. 그리고 Go로 다시 작업 할 수 없습니다. 실마리가 없습니다. – dmknob