访问S3中存储的PWA的角度路线时出现* NoSuchKey *错误

时间:2019-04-30 12:02:08

标签: 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

首次访问该应用程序或更新该应用程序时,有必要通过根网址( myapp.com )访问该应用程序,否则会出现 NoSuchKey 错误发生。首次访问应用程序时访问 myapp.com/items 时,会发生此错误。

原因很明显。 Angular负责处理路线。通过根URL访问PWA时,它将首先将PWA下载到浏览器的缓存中。之后,PWA处理路由。

但是,当第一次通过路由(例如 myapp.com/items )访问该应用时,由于浏览器中没有存储PWA,因此请求由S3处理,该S3尝试访问存储在存储桶中的名为 items 的对象。该对象显然不存在。所以我收到一个 NoSuchKey 错误。

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

1 个答案:

答案 0 :(得分:0)

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

  • HTTP错误代码:404

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

  • HTTP响应代码:200

对我有用:)