通过 Web 资源提供压缩内容

Serve gzipped content via a Web Resource

我有一个 Dynamics 365 实例,它大量使用自定义 front-end 接口,使用现代 Nodejs-based 构建管道,涉及常见的嫌疑人,例如 webpack/babel/etc。我将这些文件作为网络资源托管在 Dynamics 中(每个 SPA 一个 html 文件和一个 bundle.js 文件)。

随着我的团队临近生产,我正在尝试为我们的 front-end 内容设置一个不错的生产版本以减少加载时间。不幸的是,我找不到一个好的方法来为我们的 bundle.js 编码为 gzip 的文件提供服务,因为 Dynamics 在发出请求时不会 return Content-Encoded: gzip header 因此浏览器不解压缩文件并尝试以普通方式读取压缩文件 JavaScript。

当然,我们可以很好地提供未压缩的文件,但如果可能的话,我们希望提供更小、加载速度更快的文件,因为它通常是大小的 1/3 左右。

对于如何在我请求 Web 资源时覆盖从动态返回的默认响应 header 有什么好主意吗?或者这个问题的任何其他聪明的解决方案?

谢谢,如果需要任何说明,请告诉我。

我不知道有什么方法可以通过网络资源提供压缩内容。

如果下载大小是一个很大的问题,也许可以将 gzip 压缩代码编码为 base64,并将其作为字符串变量存储在 JS 中。 然后在执行期间,您可以解码、解压缩和 eval() 代码。

您还可以通过注释记录或在 XML 网络资源中将 base64 gzip 代码存储为文件附件,尽管这些选项需要额外的 API 调用才能获取代码,因此字符串变量可能是您最好的选择。