我可以将 Angular JS 部署到 AWS S3 存储桶并期望路由在那里工作,还是必须使用 EC2?什么是“静态 Angular js 页面”?

问题描述 投票:0回答:3

我是新手,正在学习如何部署到 AWS。 我制作了 Angular JS 网站,并尝试使用 node.js npm/bower 将其部署在本地主机上。成功了。我尝试在 MS Azure 上部署它:从 Github 部署它,效果也很好(我没有在设置中执行任何操作,也没有安装 node.js,但也许 Azure 自动完成了?)。 最后,我尝试将其作为允许公共访问的静态网页上传到 AWS S3 存储桶。这不是工作属性:我只能看到我的index.html内容,但看不到路由内容:所以基本上我的网页几乎没有任何内容。 我看到了一个类似的问题(“如何使用 AWS 设置 AngularJS 应用程序?”),其中有人想知道将 AngularJS 上传到 S3 存储桶或 EC2 的选项。答案是,如果是 Angular js 静态网页,则可以在 AWS 上使用 S3。这个问题的人选择了 EC2 选项。如果我选择 S3 选项:我很困惑:“静态 Angular js 页面”实际上是什么?路由可以在 S3 上工作吗?还是我必须将 EC2 与 Node.js 一起使用?

angularjs amazon-web-services
3个回答
7
投票

首先,您应该进行简单的搜索并阅读staticdynamic网页之间的差异。

如果您使用某种服务器端技术(例如 NodeJS、Java、Python、Ruby 等)在发出请求时为您的网页生成 HTML,那么您就有一个动态网页,并且需要将其托管在EC2.

如果您的网页只是 HTML、CSS 和 JavaScript 文件,并且这些文件的原始内容不会随每个请求而变化,那么您就有一个静态网页,可以托管在 S3 上。静态网页的优点是托管成本低得多,并且当托管在 S3 这样的地方时,它可以处理大量流量,而无需您进行任何额外的配置或管理。

就您而言,我相信您仅使用 NodeJS 作为脚本,运行一次来生成/输出静态 AngularJS 内容。如果是这种情况,那么您就有了一个静态网站。然而,如果您还使用 NodeJS 作为服务器来动态处理 HTTP 请求,那么您就有了一个动态网站。

AngularJS 是一种客户端技术。 AngularJS 完全在浏览器中运行。因此,您应该能够在 S3 上托管 AngularJS 应用程序。

由于 AngularJS 路由完全在浏览器端工作,因此页面托管在哪里并不重要。如果页面托管在 S3 中,您应该期望它能够工作,因为它实际上在浏览器中运行,而不是在服务器中运行。


1
投票

“静态 Angular js 页面”到底是什么?

静态AngularJS指的是前端内容,例如HTML、JS、CSS、图像等。您应该能够实现来自S3的静态内容的路由。

路由可以在 S3 上工作吗?还是我必须将 EC2 与 Node.js 结合使用?

如果您可以将 AngularJS 应用程序静态内容和后端代码分开(例如具有数据库访问的 NodeJS 服务器逻辑等),那么您可以在 S3 中托管 AngularJS 应用程序并使用 EC2 作为后端。这对于设置来说可能会很困难。要路由到 S3 中的前端和 NodeJS 后端,您还可以使用 AWS CloudFront。

但是,由于您是 AWS 新手,因此最好在开始部署时使用 AWS Elastic Beanstalk 或 EC2 与 NodeJS。


0
投票

有一种便捷的方式将 SPA 部署到 S3 和 CloudFront,并轻松在云上设置基础设施! 它称为 SWS Console Quick Cloud Architecture Builder 服务。只需几个简单的输入,您就可以控制 AWS 资源。请参阅下面的文档!

使用 SWS 控制台快速云架构构建器使前端部署变得简单

使用 S3 和 CloudFront 将 SPA(React、Vue 等)项目部署到 AWS 时,需要执行一些复杂的任务,例如在 S3 上设置静态 Web 托管并将存储桶链接到 CloudFront。不如使用 Sws Console 服务,它为您的 SPA 项目构建 S3 静态 Web 托管 + CloudFront 的 AWS 云架构,而无需担心这些任务?请参考下面的文档,尝试使用Sws Console Quick Builder工具快速构建AWS架构!

使用 SWS 控制台快速云架构构建器使前端部署变得简单

进入Sws控制台服务页面

© www.soinside.com 2019 - 2024. All rights reserved.