Обслуживайте сжатый контент через веб-ресурс - PullRequest
0 голосов
/ 30 августа 2018

У меня есть экземпляр Dynamics 365, который интенсивно использует пользовательские интерфейсные интерфейсы с использованием современного конвейера сборки на основе Nodejs, включающего обычных подозреваемых, таких как webpack / babel / etc. Я размещаю эти файлы как веб-ресурсы в Dynamics (один HTML-файл и один файл bundle.js для каждого SPA).

По мере того, как моя команда приближается к производству, я пытаюсь создать хорошую производственную сборку для нашего интерфейса, чтобы сократить время загрузки. К сожалению, я не могу найти хороший способ обслуживания наших файлов bundle.js, закодированных как gzip, потому что Dynamics не возвращает заголовок Content-Encoded: gzip при выполнении запроса, и поэтому браузер не распаковывает файл и пытается прочитать сжатый файл как обычный JavaScript.

Конечно, мы можем отлично обслуживать несжатый файл, но мы хотели бы предоставить меньший, более быстрый файл загрузки, если это возможно, так как обычно он составляет около 1/3 размера.

Есть ли у кого-нибудь блестящие идеи о том, как переопределить заголовки ответов по умолчанию, возвращаемые из динамики, когда я запрашиваю веб-ресурс? Или какие-то другие умные решения этой проблемы?

Спасибо, и дайте мне знать, если потребуется какое-либо разъяснение.

1 Ответ

0 голосов
/ 01 сентября 2018

Я не знаю ни одного способа подачи сжатого контента через веб-ресурс.

Если размер загрузки является огромной проблемой, возможно, закодируйте сжатый код в base64 и сохраните его как строковую переменную в JS. Затем во время выполнения вы можете декодировать, распаковать и eval() код.

Вы также можете хранить сжатый код base64 в виде вложенного файла через запись аннотации или в веб-ресурсе XML, хотя для получения этих параметров потребуется дополнительный вызов API для получения кода, поэтому лучше всего подойдет строковая переменная.

...