reactjs - 将带有 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 供参考。
解决方案
第一的:
确保权限正确。您可以通过运行获取文件夹的权限信息。ls -l
您将在左侧看到权限。这是一个很好的解释的链接
然后您可以使用该chmod
命令为您的环境设置权限。这是一个如何设置用户、组、每个人权限的示例。
chmod -R 755 <build folder>
看看这个 SO 帖子解释。
第二:确保 Gatsby 的任何相关主机名 env var 设置正确。这是他们关于此事的文档的链接。
我对 Gatsby TBH 不是很熟悉,但希望其中一个对你有用。
干杯。
推荐阅读
- java - 如何确定旋转字符串算法的时间和空间复杂度
- asp.net-core - 在 Web API ASP.NET Core 中检查 api 密钥的简单方法
- javascript - 使用 JavaScript Reduce 生成对象
- java - 如何在java中修复数组索引超出范围?
- office-js - addFileAttachmentAsync 附加无效的授权标头
- html - html视频播放问题
- c# - 如何检查 DataGrid 中的特定列是否已更改?
- c# - PostMessage 鼠标点击有效但没有移动
- c# - 如何压缩相同的重复 Else If 语句
- python - 尝试对 pandas df 进行排序返回多索引错误