我对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。
当我取消压缩线时,一切都将正常工作。
答案 0 :(得分:0)
我有同样的问题,唯一(丑陋)的解决方法是关闭Mac用户上Safari的压缩。某些文件仅部分传输。有时有效,有时无效。 iOS上的Safari可以使用,Mac OS上的Chrome && FF也可以使用。
Object
有人对此有更好的解决方案吗? 将Node 10.16.3与最新的Express和Compression软件包一起使用。