2

我正在使用 tomcat 6 和 7。我正在尝试创建一个过滤器来查找“resourceName”+ .gz,然后将请求转发到该资源(如果存在)(并且浏览器支持 gzip)。

我试过这个

httpServletRequest.getRequestDispatcher(newUri).forward(httpServletRequest, response);

但是,这是行不通的。问题是,一旦执行了转发,就会使用 application/x-gzip 的内容类型提交响应。内容类型应该是没有 .gz 扩展名的任何内容类型。

我尝试将 mime-types 添加到 web.xml 文件中,但这似乎不起作用

<mime-mapping>
    <extension>js</extension>
    <mime-type>text/javascript</mime-type>
</mime-mapping>
<mime-mapping>
    <extension>js.gz</extension>
    <mime-type>text/javascript</mime-type>
</mime-mapping>

我在这里做错了什么?

4

1 回答 1

0

静态资源的 Gzip 由 tomcat server.xml 中的配置设置,如以下博客http://viralpatel.net/blogs/enable-gzip-compression-in-tomcat/中提供的

来自项目的示例 server.xml 片段 -

<Connector port="8080" protocol="HTTP/1.1" acceptCount="100"
        connectionTimeout="20000" redirectPort="8443" maxHttpHeaderSize="8192"
        maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
        enableLookups="false" disableUploadTimeout="true" compression="on"
        compressionMinSize="2048"
        compressableMimeType="text/html,text/xml,text/plain,text/javascript,text/css" />
于 2012-11-27T02:23:00.533 回答