我正在使用Angular 7和Ionic 4开发PWA,并将其存储在Amazon S3中。
我的应用程序当然有路线。例如:
myapp.com
myapp.com/items
myapp.com/items/1
首次访问该应用程序或更新该应用程序时,有必要通过根网址( myapp.com )访问该应用程序,否则会出现 NoSuchKey 错误发生。首次访问应用程序时访问 myapp.com/items 时,会发生此错误。
原因很明显。 Angular负责处理路线。通过根URL访问PWA时,它将首先将PWA下载到浏览器的缓存中。之后,PWA处理路由。
但是,当第一次通过路由(例如 myapp.com/items )访问该应用时,由于浏览器中没有存储PWA,因此请求由S3处理,该S3尝试访问存储在存储桶中的名为 items 的对象。该对象显然不存在。所以我收到一个 NoSuchKey 错误。
使用Angular路由和S3时如何处理 NoSuchKey 错误?
答案 0 :(得分:0)
此问题的解决方法是将“页面未找到”错误重定向到PWA索引页面。在AWS CloudFront中,转到错误页面,然后单击创建自定义错误响应。然后填写:
HTTP错误代码:404
响应页面路径:/index.html
HTTP响应代码:200
对我有用:)