我在磁盘上压缩了数据文件和图像。我希望通过设置Content-Encoding: gzip
响应标头,使用Apache为它们提供服务并让浏览器解压缩它们。基本上是什么mod_gzip,但我的数据已经被gzip压缩,所以在发送之前我不需要再次gzip。
但我使用mod_xsendfile
。我的应用程序是用Django编写的,它运行在Apache代理之后。数据文件的URL首先转到Django,Django检查权限并找到磁盘上文件的正确路径;然后生成Apache看到的X-Sendfile: <path>
标头,以便它返回文件(这由mod_xsendfile
模块完成)。
如果我在Django中设置Content-Encoding
标题,mod_xsendfile
会删除它;正如其文件所述,
Content-Encoding标头 - 如果存在 - 将被删除,因为模块无法知道它是否是由程序员或处理程序设置的。例如。启用输出压缩的php将设置此标头,但通过mod_xsendfile发送的替换文件很可能不会被压缩。
所以我不能做我想做的事。
有没有办法把标题重新放入我想要返回的文件中,可能是在Apache配置中?