我需要从AWS S3提供webpack包(和衍生资产),如果浏览器支持,我想要将这些文件提供给Gziped。 S3并不是即时Gzip内容,因此您必须上传资产的未压缩和压缩版本,并实施逻辑以从客户端选择相应的版本。
现在,当我从服务器提供html页面时,我可以选择加载main.bundle.js
文件或其压缩版本main.bundle.js.gz
,具体取决于请求中的Accept-encoding
标头。
问题是webpack对我的资产的Gziped版本一无所知,因此它会继续使用未压缩的文件加载剩余的bundle块。
有没有办法告诉webpack加载捆绑块和其后附加后缀的文件(在本例中为.gz
)?
我能想到的唯一解决方案是生成两个单独的包,一个用于未压缩文件,另一个用于gziped文件,使用不同的publicPath
区分它们。但我认为这可能是一种矫枉过正,因为这两个捆绑包实际上是相同的。
有什么想法吗?
谢谢!
答案 0 :(得分:2)
如果您在S3存储桶上启用CloudFront,他们最近(12/17)只是将选项添加到gzip。请参阅:https://aws.amazon.com/blogs/aws/new-gzip-compression-support-for-amazon-cloudfront/