0

我有一个使用 AWS Amplify 构建的 React Web 应用程序,托管在 S3 存储桶中。

我总是能够在应用程序中进行导航(例如单击路由器链接),但如果我尝试直接导航到或刷新浏览器中除 root 以外的任何页面,该页面将完全空白。

我添加了以下重写规则,并解决了路由单个/远离根的问题。例如,我现在可以刷新页面或直接导航到https://example.com/users

在此处输入图像描述

但是,当 URL 路由嵌套在此之外时,问题仍然存在。

例如,如果我通过在 URL 栏中输入地址直接路由到 https://example.com/users/profile,或者我在此页面上刷新页面,则https://example.com/users/profile仍然是一个空白页面。

当我打开 JS 控制台检查错误(Chrome 浏览器)时,我看到以下错误:

app.js:1 Uncaught SyntaxError: Unexpected token '<'

有没有其他人遇到过这个问题?我似乎找不到有效的解决方案。我已经阅读了添加homepage: "/"到 package.json 或将 manifest.json 文件中的 start_url 从“。” 到“/”应该可以解决这个问题,但我都试过了,但没有奏效。

任何提示或指导将不胜感激。提前感谢大家!

4

2 回答 2

0

有完全相同的问题 - 嵌套路由在刷新或直接导航时中断。但我的应用程序是一个 Create React 应用程序。

通过删除 my package.jsonwhich contains 中的一行来解决它"homepage": "."。结果,我的应用程序脚本从 更改src="./static/js/bundle.js"src="/static/js/bundle.js",现在一切正常。

于 2022-01-11T10:36:15.393 回答
0

所以问题似乎是我在我的 html 文件中导入 app.js 的方式。

我按如下方式导入它:<script src="js/app.js"/>

我将其更改为:<script src="/js/app.js"/>

这就是诀窍。现在我的页面正常刷新了。

于 2020-11-27T03:33:27.810 回答