如何将Next.js应用部署到Azure应用服务?

3
我一直在尝试将Next.js应用程序部署到Azure应用服务中,因为我们需要同时呈现静态和动态内容,所以需要运行Node服务器。有人可以帮助我吗?
注意:我已经观看了这些视频,并且已经尝试了添加web.config和server.js文件到我的网站根目录等方法,但是没有成功。还有这篇文章。

https://parveensingh.com/next-js-deployment-on-azure-app-service/

但是没有运气。

enter image description here


看一下这个链接,看看是否有帮助-https://dev59.com/bLLma4cB1Zd3GeqPWipP - Monika Reddy
2个回答

1
以下方法无需使用server.js文件、next export或pm2脚本进行部署。

将你的package.json脚本保持为默认的next脚本即可:

"scripts": {
    "dev": "next dev",
    "build": "next build",
    "start": "next start",
}

方法一:使用 VS Code - Azure 扩展程序

  • 设置 > 配置中添加以下环境变量到您的 Azure 应用服务中:

SCM_DO_BUILD_DURING_DEPLOYMENT="true"

  • 右键单击 Azure 应用服务项目,选择部署到 Web 应用程序选项。
  • 选择要部署的根文件夹。

enter image description here

第二种方式: 通过Azure Devops(https://dev.azure.com/)实现CI/CD流水线

这里有一个您可以参考的示例文章

所有功劳归Suhas Talekar所有

https://itbusinesshub.com/blog/nextjs-node-app-on-azure-app-service/#how-to-host-next.js-app-on-azure's-app-service

  • 唯一的变化是您不需要将pm2脚本作为启动命令,也不需要创建ecosystem.config.js文件。
  • 其余过程相同。
  • Azure负责启动nextjs应用程序。

1

更详细的答案,其中包括使用源代码控制的步骤可以供您参考。

我也测试了直接从VS Code部署,也能正常工作。

就像Monika发布的链接一样,修改package.json的步骤可能会被遗忘。并确保您的项目在本地正常运行后再发布到Azure。

package.json:

"scripts": {
    "dev": "node server.js",
    "build": "next build",
    "start": "node server.js"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接