通过 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 调用才能获取代码,因此字符串变量可能是您最好的选择。
我有一个 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 调用才能获取代码,因此字符串变量可能是您最好的选择。