Angular *访问存储在S3中的PWA的角度路由时NoSuchKey*错误

Angular *访问存储在S3中的PWA的角度路由时NoSuchKey*错误,angular,amazon-s3,progressive-web-apps,angular-router,bucket,Angular,Amazon S3,Progressive Web Apps,Angular Router,Bucket,我正在用Angular 7和Ionic 4开发一个PWA,并在Amazon S3中用一个桶来抚摸它 当然,我的应用程序有路由。例如: myapp.com myapp.com/items myapp.com/items/1 第一次访问应用程序或更新应用程序时,必须通过根url(myapp.com)访问该应用程序,否则不会发生任何uchkey错误。首次访问应用程序时访问myapp.com/items时,会发生此错误 原因显而易见。Angular负责处理路线。当通过根url访问PWA时,它首先将PW

我正在用Angular 7和Ionic 4开发一个PWA,并在Amazon S3中用一个桶来抚摸它

当然,我的应用程序有路由。例如:

myapp.com
myapp.com/items
myapp.com/items/1
第一次访问应用程序或更新应用程序时,必须通过根url(myapp.com)访问该应用程序,否则不会发生任何uchkey错误。首次访问应用程序时访问myapp.com/items时,会发生此错误

原因显而易见。Angular负责处理路线。当通过根url访问PWA时,它首先将PWA下载到浏览器的缓存中。之后,PWA处理路线

但当应用程序第一次通过路径(例如myapp.com/items)访问时,由于浏览器中没有存储PWA,请求由S3处理,S3尝试访问名为存储在bucket中的items的对象。这个物体显然不存在。所以我得到了一个NoSuchKey错误


使用Angular routes和S3时如何处理NoSuchKey错误?

此问题的解决方法是将页面未找到错误重定向到PWA索引页面。在AWS CloudFront中,转到错误页面并单击创建自定义错误响应。然后填写:

  • HTTP错误代码:404

  • 响应页面路径:/index.html

  • HTTP响应代码:200

这对我很有效:)