发送ttf文件时向HTTP响应添加deflate

时间:2019-06-10 05:05:09

标签: node.js http http-headers gzip

    var zlib = require('zlib')
    if (zip) {
        data = zlib.deflateSync(data)
    }

    var headers = {
        'Access-Control-Allow-Origin': '*',
        'Content-Length': Buffer.byteLength(data, enc),
        'Content-Type': mimeType,
        'Cache-Control': 'max-age=60',
    }

    if (zip) {
        headers['Content-Encoding'] = 'deflate'
    }

    response.writeHead(code, headers)
    response.write(data, enc)
    response.end()

我注意到,如果我对TTF字体启用deflate压缩,它们将无法被浏览器加载。虽然压缩适用于所有其他文件。我已禁用图像压缩功能,因为它们已经被压缩了。现在,我只需要为包含"font"的内容类型禁用压缩。如何以浏览器可以理解字体文件的方式启用压缩?

FireFox只是无声地显示默认字体而不是指定字体。 Chrome给出了明确的错误:

font-test.html:1 Failed to decode downloaded font: https://localhost/fonts/icons.ttf
font-test.html:1 OTS parsing error: incorrect entrySelector for table directory

0 个答案:

没有答案