node.js - 在 Express 包装的 Azure NextJs 应用程序上部署后,应用程序将永久加载

标签 node.js azure azure-devops next.js

您好,我正在尝试使用带有 server.js 的 devOps 项目来部署 nextjs 应用程序,如下所示:

const express = require('express')
const next = require('next')
    
const dev = process.env.NODE_ENV !== 'production'
const app = next({ dev })
const handle = app.getRequestHandler()
    
app.prepare()
.then(() => {
  var port = process.env.port || 3001
  const server = express()
    
  server.get('*', (req, res) => {
    return handle(req, res)
  })
    
  server.listen(port, (err) => {
    if (err) throw err
    console.log('> Ready on http://localhost:433')
  })
})
.catch((ex) => {
  console.error(ex.stack)
  process.exit(1)
})

对于 devOPs 项目,我设置了 github、vsts,然后转到 azure。

我使用了 Nodejs 的默认设置,仅在 VSTS 管道中我添加了 npm 脚本“npm run build”。

我在 buld 的代理工作如下:

  • -用户 Node 版本
  • -Npm 安装应用程序依赖项
  • -Npm 自定义(由我添加,运行构建)
  • -存档文件
  • -公共(public)神器掉落。

发布中:

  • Azure 部署:创建 Azure 应用
  • 部署 Azure 应用服务

问题是,构建与发布相同成功,但是当我尝试访问该网站时,它会永远加载。我做了研究,但一无所获。

我已经尝试让它工作 3 天了......请帮忙

最佳答案

昨天,我使用 Azure Devops 构建和发布管道成功将 NextJs 应用部署到 Azure 应用服务。

以下是我遇到的三个问题。我还分享了每个问题的解决方案屏幕截图。

  1. Azure 应用服务 Node 版本应与您的 nextjs 兼容。

    /image/MpkuY.jpg

  2. 根目录下缺少 web.config 文件

    /image/2vSvR.jpg

  3. server.js 中的端口号不正确,package.json 中的脚本标记不正确

    /image/tvBeZ.jpg

我的构建管道看起来和你很相似。 /image/tMQA7.png

关于node.js - 在 Express 包装的 Azure NextJs 应用程序上部署后,应用程序将永久加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53528686/

相关文章:

SSIS 项目无法在自托管代理上构建

javascript - 了解 Node.js 中的简单流转换

javascript - 使用请求模块发布表单数据 - Nodejs 和 Express

node.js - 如何修复 Node.js puppeteer keyboard.type() 导致 TypeError

python-3.x - Azure Web 服务部署在本地如何工作?

azure - 如何在 VSTS 中每次部署之前清理目标 Azure 网站 Windows Server 上的 wwwroot 文件夹

http - 如何很好地销毁 Node.js http.request 连接?

azure - 如何将秒转换为格式 HH :mm:ss in Kusto

Azure-存储静态网站访问权限

c# - DevOps nuget pack 步骤未拾取 dll