[英]Getting an "Access Denied" error when I reload my React app on AWS Amplify
我正在开发一个在 AWS Amplify 上运行的 React 应用程序。 我的 React 应用程序使用 react-router-dom 库来路由到不同的组件。 在 CLI 中运行 amplify publish 后,在应用程序 (obktraining.com) 的根目录下,浏览器中的一切都很好,我也可以路由到应用程序中的其他组件也很好。 但是,当我在路线 (obktraining.com/menu) 上刷新浏览器时,我收到一条访问被拒绝的错误消息。
我发现了其他关于在 Amplify 中重写和重定向的类似问题的帖子,但给出的解决方案对我不起作用。
同样,该错误仅在我刷新路线(obktraining.com/menu 或 obktraining.com/drinks)而不是 obktraining.com 时显示。 问题是由 react-router-dom 库引起的还是 Amplify 设置的问题? 我不知道从这里去哪里。
几天以来我一直面临同样的错误。错误是由放大设置引起的。 解决方案很简单,通过添加新规则来编辑您的重写和重定向。
源地址 = </^[^.]+$|.(?.(css|gif|ico|jpg|js|png|txt|svg|woff|ttf|map|json)$)([^.]+ $)/>
目标地址 = /index.html
状态 = 200(重写)
国家代码可以留空
保存并再次尝试刷新您的应用。 它应该可以工作。
您可以从 AWS Amplify 控制台导航到您的应用程序中的“重写和重定向”,然后单击编辑和 select 打开文本编辑器,并将这段代码添加到您的数组(如果存在)中,否则将数组大括号放在它周围。
{
"source": "</^[^.]+$|\\.(?!(css|gif|ico|jpg|js|png|txt|svg|woff|ttf)$)([^.]+$)/>",
"target": "/index.html",
"status": "200",
"condition": null
}
正确的规则应该是这样的:
Source address: </^[^.]+$|\.(?!(css|gif|ico|jpg|js|png|txt|svg|woff|ttf)$)([^.]+$)/>
Target address: /index.html
Status: 200
参考:
https://docs.aws.amazon.com/amplify/latest/userguide/manual-deploys.html
我遇到了同样的问题。
我正在使用手动 Zip 文件(压缩)下载。
以下是手动部署的方法:
npm run build
现在将创建一个构建文件夹。
2.压缩这个文件夹的内容
不是整个项目的内容。
您将目录更改为构建文件夹并压缩其中的内容。
3. 将压缩文件上传到构建目录中现在这应该可以正常工作了。
:)
我遇到了同样的问题。 我正在压缩构建文件夹。
这是我如何修复它的:
运行构建命令
npm run build
现在将在您的项目目录中创建一个构建文件夹。
打开构建文件夹。
压缩构建文件夹的内容而不是构建文件夹。
现在上传这个从构建文件夹的子文件和文件夹创建的新 zip。
应用程序将在 aws amplify 上运行良好。
我遇到了同样的错误,我先压缩了 build 文件夹然后上传它并得到了那个错误,但是当我上传文件夹而不压缩它时,它工作正常! 诡异的!!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.