首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从AWS S3构建和服务React/Nextjs

从AWS S3构建和服务React/Nextjs
EN

Stack Overflow用户
提问于 2022-09-30 20:07:00
回答 2查看 103关注 0票数 0

我正在构建一个React/Nextjs应用程序,并计划将其推送到AWS S3,并从AWS CloudFront (使用S3桶作为分发源)提供服务。我将使用Route53和DNS配置将我的域(例如,https://myapp.example.com)映射到CF发行版。但我能搞定。

在文档中,我看到可以通过以下方式构建和运行Nextjs应用程序:

代码语言:javascript
复制
npm run build
npm run start

但是,在这里,我想获取npm run build生成的所有内容(可能是.next/目录的内容吗?)并将输出上传到我的S3桶中。

显然,我希望这样就足够了,这样当用户进入我的域时,当他们被指向CF发行版(以及随后支持该发行版的S3桶)时,他们会下载构建完整的+转换应用程序,然后在他们的浏览器中加载和运行。

我怎样才能做到这一点?需要在S3上存储什么?是否有任何特殊的配置需要提供,以使其在浏览器中运行,一旦他们从S3获取构建的/转移的应用程序?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-10-01 08:33:52

首先,在构建之后,您需要从下一步运行一个额外的命令到生成静态文件

代码语言:javascript
复制
next export

此命令将创建一个目录out。这个目录的内容应该上传到您的S3桶中。

然后,您需要通过AWS控制台(通过S3属性启用它)在您的AWS桶上启用“静态网站托管”。对于索引和错误文档,添加index.html (或您的主html文件)。

您还需要允许使用以下权限访问S3文件

代码语言:javascript
复制
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::[your-bucket-name]/*"
        }
    ]
}
票数 2
EN

Stack Overflow用户

发布于 2022-10-01 04:59:15

您将需要一个反向代理服务,该服务将请求url与您的网站url匹配,然后返回响应。了解Nginx或类似的aws相关服务。

如果只运行build并启动npm命令,则需要有一个节点服务器。您可以导出和这将是一个完整的静态网站,可以运行没有节点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73913516

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档