开发者问题收集

当我在 AWS Amplify 上重新加载我的 React 应用程序时出现“访问被拒绝”错误

2020-07-22
17871

我正在开发一个在 AWS Amplify 上运行的 React 应用程序。我的 React 应用程序使用 react-router-dom 库来路由到不同的组件。在 CLI 中运行 amplify publish 后,在应用程序的根目录 (obktraining.com) 中,浏览器中一切正常,我也可以正常路由到应用程序中的其他组件。但是当我在路由 (obktraining.com/menu) 上刷新浏览器时,我收到“访问被拒绝”错误消息。

我发现了其他有关 Amplify 中重写和重定向的类似问题的帖子,但给出的解决方案对我不起作用。

这是错误的图像: 在此处输入图像描述

我的 Amplify 应用程序重写 &重定向: 在此处输入图片说明

同样,只有当我在路线(obktraining.com/menu 或 obktraining.com/drinks)上刷新时才会显示错误,而不是在 obktraining.com 上。问题是由 react-router-dom 库引起的,还是 Amplify 设置的问题?我不确定接下来该怎么做。

3个回答

几天来我一直遇到同样的错误。错误是由放大设置引起的。解决方案很简单, 通过添加新规则编辑您的重写和重定向。

源地址 = </^[^.]+$|.(?!(css|gif|ico|jpg|js|png|txt|svg|woff|ttf|map|json)$)([^.]+$)/>

目标地址 = /index.html

状态 = 200 (重写)

国家代码可以留空

保存并尝试再次刷新您的应用。它应该可以工作。

使用此作为参考: https://docs.aws.amazon.com/amplify/latest/userguide/redirects.html#redirects-for-single-page-web-apps-spa

Dhruv Godambe
2020-08-29

这是您可以在 Amplify 菜单上找到重定向的地方

然后您只需输入(如 Dhruv Godambe 上面发布的那样)

</^((?!.(css|gif|ico|jpg|js|png|txt|svg|woff|ttf)$).)*$/>

作为源地址,

/index.html 作为目标地址

这是它在 AWS 中的样子

heLL0
2021-04-30

您可以从 AWS Amplify 控制台导航到应用程序中的“重写和重定向”,然后单击“编辑”并选择“打开文本编辑器”,然后将此代码添加到数组中(如果存在),否则将数组括号括起来。

{
        "source": "</^[^.]+$|\\.(?!(css|gif|ico|jpg|js|png|txt|svg|woff|ttf)$)([^.]+$)/>",
        "target": "/index.html",
        "status": "200",
        "condition": null
}

参考: https://docs.aws.amazon.com/amplify/latest/userguide/redirects.html#redirects-for-single-page-web-apps-spa

Azher Aleem
2021-05-26