将下一个JS作为非静态文件发布到我的Azure web应用程序不工作



在过去的几个月里,我们已经以静态文件的形式运行了一个next js站点,它运行得很好。我们想要添加一些被next导出函数阻止的功能,所以我们决定将next js作为非静态渲染页面运行。几乎没有关于这方面的文档,所以我们不得不编造一些步骤。使用下一个启动命令,它在本地运行良好。我们尝试按照在另一篇文章中看到的步骤,在Azure Devops中建立一个管道。我们添加了一个server.js文件,我们将它设置为运行npm install,然后是下一次构建,然后是下一次启动。这将没有错误地发布到localhost:3000,但在web应用程序上没有显示任何内容。(我们通过在url中添加端口以及不添加端口进行测试)我们尝试将端口更改为80,然后更改为443,因为它们在Azure上都是默认打开的。我们试了8080,它没有爆炸,但是页面上什么也没有显示。我们尝试传输项目中的所有文件,并在Kudu诊断控制台中运行命令(如果问题出在管道上的话)。在Kudu,我们独自运行下一个启动,下一个构建,然后下一个启动,背靠背运行,但这些都不起作用。有人知道我们遗漏了什么吗?感谢您花时间阅读这篇文章以及您的任何帮助!

您可以尝试将启动命令设置为npm run start:prod而不是next start

可以在Azure App Service Deploy任务中添加启动命令。

- task: AzureRmWebAppDeployment@4
displayName: deploy
inputs: 
azureSubscription: 'mysubscription'
...
StartupCommand: 'npm run start:prod'

或者您可以在azure web应用程序门户的配置刀片中的"常规设置"下设置Startup Command中的启动命令。

当您使用npm run start:prod。您需要确保在包的scripts部分中定义了start:prod命令。json文件。见下文:

"scripts": {
"build": "tsc -p tsconfig.build.json",
"start": "ts-node -r tsconfig-paths/register src/main.ts",
"start:prod": "node dist/main.js"

请尝试将整个项目归档并部署到azure应用程序服务,而不仅仅是/dist文件夹。

最新更新