当前位置: 首页 > 知识库问答 >
问题:

如何在版本8.0中使用`target:“serverless”``使用Next.js正确实现无服务器SSR

高森
2023-03-14

Next.js8.0刚刚引入了一个新的目标:“Serverless”配置设置,这篇博文对此进行了描述。我设置了一个基本的hello world应用程序(这里)来测试它。将.next/serverless/pages/index.js的输出复制粘贴到Google Cloud函数(相当于AWS Lambda),并让它调用render(),如上面的博文所述。

我遇到的问题是,页面本身呈现良好,但它试图获取与lambda相同的域中的静态资产(脚本文件),这当然不起作用,因为那里除了lambda脚本之外什么都没有。

我的想法是使用Next.js的这个新特性来实现一个微前端架构。pages/中的每个页面都可以有自己的开发团队/生命周期,并在后端进行相应的缩放。那是这个功能的主要卖点之一,对吧?

解决这一问题的标准方法是什么?我需要为静态资产设置一个单独的服务器吗?然后将两者放在负载均衡器或某种路由器之后?如果是这样的话,这难道不违背了使用它来开发微前端的目的吗,因为静态资产将包括“index.js”、“about.js”和每个页面的脚本文件,并且在任何页面更新时都需要重新部署?

希望我说的有道理。感谢任何帮助!

共有1个答案

赫连琦
2023-03-14

我需要为静态资产设置一个单独的服务器吗?

我是新的nextjs,但是的,我相信那是你需要的。

由于您使用的是GCP,您可能想要尝试Firebase,因为它包含Google Cloud功能(FB功能是Google Cloud功能,只是单独打包和销售)和静态托管,可以满足您的需求,包括您提到的细节。

另一个问题是,nextjs的这个新的无服务器特性似乎更倾向于AWS Lambda,因为它单独打包了功能。您可能已经意识到了,但我还是会注意到,GCP是面向“项目”的,项目中的所有功能共享一个入口点。我不会再详细讨论了,因为这不是你的问题,但这个流行的问题是如何做到这一点。

编辑:我写了,然后记住了这个FB样本...在Firebase上托管nextjs应用程序的另一种方法是基于nextjs的旧版本。

 类似资料:
  • Next.js8.0刚刚引入了一个新的配置设置,在这篇博文中有所描述。我设置了一个基本的Hello world应用程序(这里)来测试它。将的输出复制粘贴到Google Cloud Function(相当于AWS Lambda)并让它调用,如上一篇博文所述。 我遇到的问题是,页面本身呈现良好,但随后它尝试在与lambda相同的域中获取静态资产(脚本文件),这当然不起作用,因为除了lambda脚本之外

  • 我已经在亚马逊 EC2 实例上安装了 Redis 服务器。Redis在服务器上工作正常 现在我想打开端口6379在安全组中“编辑入站规则”你能告诉我我应该使用的类型和协议吗?提前致谢

  • 问题内容: 背景 我正在尝试将条纹付款集成到我的网站中。我需要使用我的专用条纹密钥创建一个条纹用户。我将此密钥存储在服务器上,并调用服务器方法来创建用户。也许还有另一种方法可以做到这一点? 我的尝试和结果 我一直在使用相同的客户端代码和不同的服务器代码。所有尝试都会立即在客户端的console.log(…)上给出undefined,但在服务器的console.log(…)上给出正确的响应: 我也尝

  • 问题内容: 我正在尝试使游戏服务器在一段时间后更新。 当我这样做时,python在其中一个内核上消耗了100%的计算能力。我真的不明白为什么会这样,如果可能的话如何解决。 问题答案: 在每次轮询之间插入一个10毫秒的毫秒,否则您的循环将持续轮询时间,而不会释放CPU的电源。 编辑:更好,仅在需要时等待一次。如果发生严重的CPU过载,则等待时间可能为负,在这种情况下,可以立即触发2个操作。并不断地重

  • 问题内容: 我上课很难。麻烦的是,我正在尝试将包裹中的一个成员写入对象,这是一个对象。的是,和对象()在列表中的。 以下是相关代码: 我在“ //帮助这里”标记了两个点,以了解如何正确地写包裹以及如何对其进行重建。如果经过(正确测试),我该如何正确执行? 问题答案: 你差点知道了! 您只需要做: 就这样! 对于您的Integer列表,您还可以执行以下操作: 它应该工作。

  • 我得到了这个错误,我不知道为什么我在workbench上尝试了这个语句,它起作用了。我也在寻找改进我的日期减法代码,基本上,我从表中得到deadline并从今天的日期中减去。