首页 > 解决方案 > 将带有 gatsby 的反应应用程序移动到 S3,现在我在浏览器中遇到错误并且使用状态无法正常工作

问题描述

我使用 Gatsby 构建和部署我的 react 应用程序。如果我npm start在我的项目中使用,并http://localhost:8000在我的浏览器中打开,一切都会正常运行。

如果我使用gatsby build然后将我的公用文件夹复制到我的 S3 存储桶中,页面会打开,并且布局看起来正确,但某些元素的状态没有改变,并且我收到控制台错误:

index.html:7 GET https://s3.amazonaws.com/webpack-runtime-405d85e0598b8c09729a.js net::ERR_ABORTED 404 (Not Found)
index.html:7 GET https://s3.amazonaws.com/page-data/index/page-data.json net::ERR_ABORTED 403 (Forbidden)
icon-48x48.png:1 GET https://s3.amazonaws.com/icons/icon-48x48.png?v=edf3d310d67f8284a562bc3a58c3e761 403 (Forbidden)
manifest.webmanifest:1 GET https://s3.amazonaws.com/manifest.webmanifest 404 (Not Found)
manifest.webmanifest:1 Manifest: Line: 1, column: 1, Syntax error.

我的存储桶是 testapp1.app-site/index.html 供参考。

标签: reactjscreate-react-appgatsby

解决方案


第一的:

确保权限正确。您可以通过运行获取文件夹的权限信息。ls -l您将在左侧看到权限。这是一个很好的解释的链接 然后您可以使用该chmod命令为您的环境设置权限。这是一个如何设置用户、组、每个人权限的示例。

chmod -R 755 <build folder> 看看这个 SO 帖子解释。

第二:确保 Gatsby 的任何相关主机名 env var 设置正确。这是他们关于此事的文档的链接。

我对 Gatsby TBH 不是很熟悉,但希望其中一个对你有用。

根据 OP。这是最终解决他们问题的链接!

干杯。


推荐阅读