使用.jar作为类型映射文件

时间:2012-02-02 16:11:02

标签: apache content-negotiation

我真的很喜欢如何使用'.jar'-Files作为类型映射文件而不是使用Content Negotiation的标准“.var”文件。

嗯,这是我的配置:

<Directory "${APACHE_PROJ}/htdocs/foo">
  AddType application/x-java-archive .jar
  AddHandler type-map .var

  <Files *.pack.gz>
    AddEncoding pack200-gzip .jar
    RemoveEncoding .gz
  </Files>

</Directory>

...运行良好,并按照预期的foo.var

从子文件夹投放
URI: foo

URI: packed/foo.jar.pack.gz
Content-Type: x-java-archive
Content-Encoding: pack200-gzip

URI: unpacked/foo.jar
content-type: x-java-archive

将文件foo.var重命名为foo.jar并将配置更改为AddHandler type-map .jar不起作用,这会立即从根目录中传递foo.jar

1 个答案:

答案 0 :(得分:1)

如果没有某种形式的类型映射(目前在您的情况下为.var),让浏览器/服务器协商确定可以使用的.jar文件的哪些变体,它只会抓住它找到的第一个.jar。为它服务。作为Apache的.jar文件的默认处理程序是为它提供服务,在添加类型映射处理程序以根据需要读取它之后,你必须使用RemoveHandler .jar,但这会禁止文件根据需要提供。