Добавление deflate к ответу HTTP при отправке файла ttf - PullRequest
0 голосов
/ 10 июня 2019
    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()

Я заметил, что если я включаю сжатие deflate для шрифтов TTF, они не будут загружаться браузером.Хотя сжатие работает для всех других файлов.Я отключаю сжатие для изображений, хотя они уже сжаты.Сейчас я просто должен отключить сжатие для типа контента, который содержит "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
...