AWS Amplify 中嵌套 URL 路径的意外标记“<”

Unexpected token '<' for Nested URL Paths in AWS Amplify

我有一个使用 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 从“.”更改为到“/”应该可以解决这个问题,但我都试过了,但没有用。

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

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

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

我改成了:<script src="/js/app.js"/>

这就成功了。现在我的页面刷新正常了。

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

通过删除我的 package.json 中包含 "homepage": "." 的一行解决了这个问题。因此,我的应用程序的脚本从 src="./static/js/bundle.js" 更改为 src="/static/js/bundle.js",现在一切正常。