首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用AWS S3托管静态express/nodeJS页面?

如何使用AWS S3托管静态express/nodeJS页面?
EN

Stack Overflow用户
提问于 2017-12-12 23:23:51
回答 2查看 8.9K关注 0票数 2

我是nodejs/express/coding的新手,所以我很抱歉,如果这不是非常清楚的话。我在为一项工作做代码挑战。

我大部分的项目都完成了。部分挑战是将其上传到S3上的一个桶中。我创造了一个水桶,一切都完成了。我的问题是,在存储桶的根文件夹中需要一个index.html (我认为)。我所有的html页面(其中三个)都位于视图目录中。当我尝试将我的index.html放在cloud9的根文件夹中时,它说在视图目录中找不到index.html (显然,因为我把它移出了)。是否可以将视图目录设置为根文件夹中的视图?

是否有一种使用express/nodeJS将所有文件都放在根文件夹中的方法?或者,是否有一种方法可以将我的视图文件夹保持为Cloud9中的文件夹,并使所有操作都像在那里运行一样,除了在S3中?我一定是漏掉了什么。我完全不知道如何在S3上托管这个应用程序。张贴在这里是我最后的手段!谢谢你的帮助。

EN

回答 2

Stack Overflow用户

发布于 2017-12-13 01:32:33

我们来点餐吧。亚马逊S3是一个云文件存储服务。它还可以用于托管网站的静态资产

据我所知,您使用的是视图目录(通常用于模板),您正在使用express构建一些东西,因此,我想您是在通过express应用程序呈现html页面。这称为服务器端呈现,与只能提供文件的amazon完全不兼容。

现在,您如何解决这个问题(考虑到您必须使用s3)?那得看情况。

如果您使用express only来呈现您的应用程序并提供静态资产(所以没有API),您应该考虑一些重构:在这种情况下,您基本上是在构建一个没有API的web应用程序。你不需要快递。也许您正在寻找一个客户端框架,如Vue.js、React或Angular。更普遍的是,应该呈现应用程序客户端.

如果您的快递服务器也充当api服务器,则应该对您的项目进行划分。一方面,您有您的速成api服务器,部署在某个地方。从另一边,您有您的web应用程序,客户端呈现

还有一种解决方案:您可以使用预存器(如 )从您的快递应用程序中生成静态资产。但如果您是web开发新手,我建议您不要评估此选项。

票数 3
EN

Stack Overflow用户

发布于 2017-12-13 01:40:19

当您将静态文件移动到S3时,需要相应地设置相对路径。

是否可以将视图目录设置为根文件夹中的视图?

不是的。相反,在S3中组织您的文件,其中index.html是根文件,文件具有路径(如js/ css/ index.html/从根文件夹获取)。

注意:重要的是要理解不能在NodeJS中运行S3,而是使用来自S3的内部web宿主来服务静态内容。

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

https://stackoverflow.com/questions/47783191

复制
相关文章

相似问题

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