Jetty不提供具有正确内容类型的静态SVGZ文件

时间:2013-01-03 07:34:25

标签: jetty

我添加了扩展名svgz以提供压缩的svg文件,但是jetty发出了错误的内容编码。我相信它应该是一个gzip编码。

有谁知道如何配置Jetty来提供静态SVGZ文件?这非常重要,因为这些文件在压缩之前通常非常大。

1 个答案:

答案 0 :(得分:4)

扩展名为SVGZ的文件只是使用GZip压缩压缩的SVG文件。 重命名文件扩展名,如果文件为logo.svgz,则将其重命名为logo.svg.gz,但保持压缩。

从Web服务器发送压缩的SVG文件时,响应标头中应包含2条信息。

Content-Type: image/svg+xml
Content-Encoding: gzip

通常,在${jetty.home}/etc/webdefault.xml文件(查找<mime-mapping>)中建立MIME类型映射,DefaultServlet用于使用适当的Content-Type来提供此静态文件,但是,这也是压缩的,这意味着所有的Gzip逻辑都应该启动。

如果DefaultServlet看到所请求文件的.gz文件扩展名,则会设置相应的Content-Encoding标头。

换句话说,您的http客户端(浏览器)可以请求文件logo.svg,但DefaultServlet将从logo.svg.gz的文件内容提供服务,Content-Encoding设置为gzip。