在Azure Portal上部署next
需求
- 在设置项目时,需要选择后端。即使你不需要它,否则网站不会启动。
- 服务器运行节点8或以上
如果我已经有一个没有后端的项目怎么办?
不用担心。向现有项目添加快速服务器很容易。
创建一个名为服务器
在项目的根源。然后创建一个index.js
文件内部服务器
文件夹并粘贴以下内部index.js
:
const express = require('express') const consola = require('consola') const {loadnext} = require(' nuext -start') const app = express() async function start () {const nuext = await loadnuext (isDev ?'dev': 'start')process.env.HOST)} start()
然后编辑你的nuext .config.js:
前:
从'中导入PKG。/package' export default{…配置}
后:
模块。导出={…配置}
记住要删除配置中对pkg对象的引用。
就是这样!
对于Azure应用程序服务部署,请确保您在应用程序服务›设置›配置›应用程序设置中设置了以下两个环境变量(应用程序设置)。
主机:'0.0.0.0' NODE_ENV: '生产'
如何在DevOps中设置Web App上的Node版本
你可以通过发布管道中的“部署Azure Web服务”任务中的App设置,在服务器上设置Node版本
将此添加到“应用程序和配置设置”下的应用程序设置字段
-WEBSITE_NODE_DEFAULT_VERSION 10.16.3
建议使用LTS版本。
工件
如果您正在使用Azure DevOps,并让构建管道完成它的工作,那么您就需要存储工件。前缀为.
必须明确地移动到Artifact文件夹。然后,您可以创建一个工件存档并在发布部署中下载它。
运行网络服务器
对于Azure Portal,您将需要一个. config
文件。如果没有提供,它将创建一个自己。这个不适用于nuxt虽然。添加一个网络。配置文件到您的存储库。的最新版本Nuxt
服务器文件位于服务器/ index.js
.在web。配置时不指定确切的路径服务器/ index.js
但就服务器
.参见示例web。下面的配置。如果不这样做,日志将告诉您Vue无法找到任何路由。
<?XML Version =“1.0”编码=“UTF-8”?><!——如果iisnode用于运行IIS或IIS Express背后的节点进程,则需要此配置文件。欲了解更多信息,请访问:https://github.com/tjanczuk/iisnode/blob/master/src/samples/configuration/web.config—><配置><system.webServer><!——访问https://azure.microsoft.com/en-us/blog/万博全站客户端appintroduction-to-websockets-on-windows-azure-web-sites/获取更多关于WebSocket支持的信息——><webSocket启用="假"/><处理程序><!——指出server.js文件是一个Node.js站点,由iisnode模块——>处理<添加的名字="Iisnode."路径="服务器"动词="*"模块="Iisnode."/>处理程序><重写><规则><!——不要干扰node-inspector的调试请求<规则的名字="NodeInspector"patternSyntax="ECMAScript"stopProcessing="真的"><比赛url="^服务器\ /调试(\ /)?"/>规则><!——首先我们考虑传入的URL是否匹配/public文件夹——>中的物理文件<规则的名字="StaticContent"><行动类型="改写"url="公共{REQUEST_URI}"/>规则><!——所有其他url都映射到Node.js站点入口点——><规则的名字="DynamicContent"><条件><添加输入="{REQUEST_FILENAME}"matchType="IsFile"否定="真正的"/>条件><行动类型="改写"url="服务器"/>规则>规则>重写><! - 'bin'目录在node.js和app中没有特殊含义可以放在它中 - ><安全><requestFiltering><hiddenSegments><删除段="箱子"/>hiddenSegments>requestFiltering>安全><!——确保错误响应保持不变<httperrors.现有范围="透传"/><!——你可以控制如何在IIS中使用以下选项:* watchedFiles:分号分隔的文件列表,将被观察的变化,重新启动服务器* node_env:将作为NODE_ENV环境变量传播到节点* debuggingEnabled -控制是否启用内置调试器。查看https://github.com/tjanczuk/iisnode/blob/master/src/samples/configuration/web.config获取完整的选项列表——><! - - >system.webServer>配置>