通过网络资源提供压缩的内容

时间:2018-08-30 15:01:38

标签: http-headers dynamics-crm gzip

我有一个Dynamics 365实例,该实例通过使用基于Nodejs的现代构建管道大量使用自定义的前端接口,该管道涉及常见的可疑对象,例如webpack / babel / etc。我将这些文件作为Web资源托管在Dynamics中(每个SPA一个HTML文件和一个bundle.js文件)。

随着我的团队接近生产,我正在尝试为我们的前端设备建立一个不错的生产版本,以减少加载时间。不幸的是,我找不到找到编码为gzip的bundle.js文件的好方法,因为在提出请求时Dynamics不会返回Content-Encoded: gzip头,因此浏览器不会解压缩文件并尝试读取压缩文件为纯JavaScript。

当然,我们可以很好地处理未压缩的文件,但我们希望尽可能提供更小,更快的加载文件,因为它的大小通常约为1/3。

有人对我请求Web资源时如何覆盖动态响应返回的默认响应标头有什么绝妙的主意吗?或其他解决此问题的聪明方法?

谢谢,让我知道是否需要澄清。

1 个答案:

答案 0 :(得分:1)

我不知道通过网络资源提供压缩内容的任何方法。

如果下载大小非常重要,则可以将压缩后的代码编码为base64,并将其存储为JS中的字符串变量。 然后,在执行过程中,您可以解码,解压缩和eval()代码。

您还可以通过注释记录或在XML Web资源中将base64压缩的代码存储为文件附件,尽管这些选项将需要额外的API调用来获取代码,所以字符串变量可能是您的最佳选择。 / p>

相关问题