AWS Amplify仅提供Gzip文件,无法提供Brotli文件问题求助
AWS Amplify托管Vue3应用Brotli文件无法加载的排查要点
1. 检查浏览器请求头的Accept-Encoding字段
浏览器只会在请求头包含br标识时,才会尝试获取Brotli压缩文件。打开开发者工具的网络面板,查看对应资源的请求头,确认是否存在Accept-Encoding: gzip, deflate, br。如果没有,要么是浏览器设置异常,要么是前端请求逻辑无意中修改了请求头(多数情况下浏览器默认会带)。
2. 验证重定向规则的正则逻辑
你当前的重定向正则:/^[^.]+$|.(?!(gz|br|css|gif|ico|jpg|js|png|txt|svg|woff|woff2|ttf|map|json)$)([^.]+$)/
有可能正则逻辑存在疏漏,导致.br文件被错误重定向到index.html。可以临时简化规则,比如只排除已知的静态资源后缀,单独测试.br文件的访问是否正常,排查是否是正则匹配导致的拦截。
3. 清理CloudFront缓存
虽然CloudFront启用了Brotli压缩,但如果之前缓存的是Gzip格式的资源,CloudFront会优先返回缓存内容。去Amplify控制台找到对应应用,进入部署页面手动清除缓存,之后重新测试。
4. 检查Webpack生成的Brotli文件
- 确认文件命名正确,比如
app.js.br这种格式,避免出现app.br.js这类错误命名 - 下载.br文件,用Brotli解压工具验证是否能正常还原原文件,排除文件损坏的可能
5. 核实Amplify的文件MIME类型与权限
- 在Amplify控制台查看.br文件的MIME类型设置,正确的设置应该匹配原资源类型(比如JS的.br文件对应
application/javascript,CSS的.br对应text/css),错误的MIME类型会导致浏览器无法解析 - 确认.br文件权限为公开可读,未被Amplify的访问控制规则限制
内容的提问来源于stack exchange,提问作者David Stanton
相关产品推荐
相关产品推荐

