Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 将brotli与AWS Cloudfront+;S3_Reactjs_Amazon S3_Webpack_Amazon Cloudfront_Brotli - Fatal编程技术网

Reactjs 将brotli与AWS Cloudfront+;S3

Reactjs 将brotli与AWS Cloudfront+;S3,reactjs,amazon-s3,webpack,amazon-cloudfront,brotli,Reactjs,Amazon S3,Webpack,Amazon Cloudfront,Brotli,我正在部署一个使用Cloudfront和S3的React应用程序,我想启用brotli进行压缩。我看过一些教程,它们使用lambda@edge. my Cloudfront发行版的行为配置如下 我还将“自动压缩对象”选项设置为“否”。我分别为源请求和查看器请求关联了以下两个lambda函数: 原产地请求: “严格使用”; /** *在“原始请求”CloudFront事件上注册的函数 */ exports.handler=(事件、上下文、回调)=>{ const request=event

我正在部署一个使用Cloudfront和S3的React应用程序,我想启用brotli进行压缩。我看过一些教程,它们使用lambda@edge. my Cloudfront发行版的行为配置如下

我还将“自动压缩对象”选项设置为“否”。我分别为源请求和查看器请求关联了以下两个lambda函数:

  • 原产地请求:
“严格使用”;
/**
*在“原始请求”CloudFront事件上注册的函数
*/
exports.handler=(事件、上下文、回调)=>{
const request=event.Records[0].cf.request;
log(JSON.stringify(request));
const headers=request.headers;
const isBr=headers['x-compression']和&headers['x-compression'][0]。值==“br”;
const isGzip=headers['x-compression']和&headers['x-compression'][0]。值==“gzip”;
/**
*基于自定义标头更新请求路径
*/  
让扩展=”;
如果(isBr)
扩展名=“.br”;
else if(isGzip)
extension=“.gzip”;
request.uri=request.uri+扩展名;
回调(null,请求);

};CloudFront现在支持Brotli边缘压缩。您可以将“压缩对象”自动设置为“是”,并消除Lambda@Edge功能。CloudFront将从S3获取未压缩的文件,并可以将可缓存的请求压缩到边缘的Brotli或Gzip

具体配置文档请参见此处: