你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
本教程介绍如何将 生成的Next.js 静态网站部署到 Azure 静态 Web 应用。 有关 Next.js 详细信息,请参阅 初学者模板自述文件。
先决条件
1.设置 Next.js 应用
可以使用初学者存储库,而不是使用 Next.js CLI 创建应用。 初学者存储库包含支持动态路由的现有 Next.js 应用。
首先,从模板存储库在 GitHub 帐户下创建新存储库。
将存储库命名 为 nextjs-starter
接下来,将新存储库克隆到计算机。 请确保用您的帐户名称替换
<YOUR_GITHUB_ACCOUNT_NAME>。git clone http://github.com/<YOUR_GITHUB_ACCOUNT_NAME>/nextjs-starter前往新克隆的 Next.js 应用程序。
cd nextjs-starter安装依赖项。
npm install在开发中启动 Next.js 应用。
npm run dev转到
http://localhost:3000以打开应用程序,您应该能在首选浏览器中看到以下网站开启:
选择框架或库时,会看到有关所选项的详细信息页:
2.创建静态应用
以下步骤演示如何将应用链接到 Azure 静态 Web 应用。 在 Azure 中后,可以将应用程序部署到生产环境。
转到 Azure 门户。
选择“ 创建资源”。
搜索 静态 Web 应用。
选择 “静态 Web 应用”。
选择 创建。
在“基本信息”选项卡中,输入以下值。
资产 价值 Subscription Azure 订阅名称。 资源组 my-nextjs-group 名称 my-nextjs-app 计划类型 免费 Azure Functions API 和过渡环境的区域 选择离你最近的区域。 来源 GitHub 如果出现提示,请选择 “使用 GitHub 登录 ”并使用 GitHub 进行身份验证。
输入以下 GitHub 值。
资产 价值 组织 选择相应的 GitHub 组织。 Repository 选择 nextjs-starter。 分支 选择main。 在“生成详细信息”部分中,从“生成预设”中选择“自定义”。 为构建配置添加以下值。
资产 价值 应用位置 在框中输入 / 。 API 位置 将此框留空。 输出位置 在框中输入 out。
3. 审查和创建
选择“查看 + 创建”,以验证详细信息是否全部正确。
选择“创建”,开始创建应用服务静态 Web 应用并为部署预配 GitHub Actions。
部署完成后,请选择“转到资源”。
在“ 概述 ”窗口中,选择 URL 链接以打开已部署的应用程序。
如果网站未立即加载,则构建仍在运行。 若要检查操作工作流的状态,请导航到存储库中的“操作”仪表板:
https://github.com/<YOUR_GITHUB_USERNAME>/nextjs-starter/actions
工作流完成后,可以刷新浏览器以查看 Web 应用。
现在,main 分支上的任何更改都会启动网站的新构建和部署。
4. 同步更改
创建应用时,Azure 静态 Web 应用在存储库中创建 GitHub Actions 文件。 通过将最新的资源拉取到本地存储库,与服务器同步。
返回到终端并运行以下命令 git pull origin main。
配置静态呈现
默认情况下,应用程序被视为混合呈现 Next.js 应用程序,但若要继续将其用作静态站点生成器,需要更新部署任务。
在 Visual Studio Code 中打开存储库。
在
.github/workflows/azure-static-web-apps-<your site ID>.yml导航到 Azure Static Web Apps 添加到存储库的 GitHub Actions 文件更新 “生成”和“部署 ”作业,使其环境变量
IS_STATIC_EXPORT设置为true:- name: Build And Deploy id: swa uses: azure/static-web-apps-deploy@latest with: azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_TOKEN }} repo_token: ${{ secrets.GITHUB_TOKEN }} # Used for GitHub integrations (i.e. PR comments) action: "upload" app_location: "/" # App source code path api_location: "" # Api source code path - optional output_location: "" # Built app content directory - optional env: # Add environment variables here IS_STATIC_EXPORT: true将更改提交到 git,并将其推送到 GitHub。
git commit -am "Configuring static site generation" && git push
生成完成后,站点将被静态渲染。
清理资源
如果不打算继续使用此应用,可以通过以下步骤删除 Azure 静态 Web 应用实例。
- 打开 Azure 门户。
- 从顶部搜索栏中搜索 my-nextjs-group 。
- 选择组名称。
- 选择 删除。
- 选择 “是 ”以确认删除作。