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