Safari和iOS中带有express.js的Gzip压缩问题

时间:2018-11-12 21:35:37

标签: node.js macos express safari gzip

我对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和Mac上的Safari中,“ Accept Encoding”属性仅设置为gzip和deflate。与其他浏览器和操作系统一样,它是gzip,deflate和br。

当我取消压缩线时,一切都将正常工作。

网站为https://kalidata.app?frame

1 个答案:

答案 0 :(得分:0)

我有同样的问题,唯一(丑陋)的解决方法是关闭Mac用户上Safari的压缩。某些文件仅部分传输。有时有效,有时无效。 iOS上的Safari可以使用,Mac OS上的Chrome && FF也可以使用。

Object

有人对此有更好的解决方案吗? 将Node 10.16.3与最新的Express和Compression软件包一起使用。