我在gzip压缩方面遇到了严重的问题。我在我的Node JS express.js服务器中使用以下代码进行压缩:
app.use(compression());
问题在于它在大多数浏览器和平台上表现良好,但在Mac OS的Safari和iPhone上的每个移动浏览器中均无法正常工作。 在Mac的Safari上,它会给我以下错误:
Failed to load resource: cannot decode raw data.
只有一个javascript文件出现了问题,其他都正常。
当我尝试通过URL访问该文件时,它只加载了一部分,然后变得非常奇怪,像是随机字符。在控制台中显示的错误是相同的。
我发现头文件中唯一值得注意的区别是,在iOS和Safari for Mac中,“Accept Encoding”属性仅设置为gzip和deflate。而在其他浏览器和操作系统中,它是gzip,deflate和br。
当我删除压缩行后,一切都可以无缝运行。