reactjs 如何在Azure Static Web Apps中手动部署NextJS SPA

vptzau2j  于 2023-05-22  发布在  React
关注(0)|答案(1)|浏览(103)

我有这个NextJS SPA,我想在Azure静态Web应用程序中部署。这是一个相当简单的应用程序,具有一些动态路由(例如/pages/requests/[id]/*)。我的组件/路由中的数据仅通过客户端获取(没有SSR或SSG)。
起初,我尝试通过在next.config.js中设置output: 'export'来进行静态导出,这对于静态路由(例如,https://myapp.azurestaticapps.net/requests/)但是它给了我一个404错误的动态路由(例如:https://myapp.azurestaticapps.net/requests/7ecf58774844)。我认为这与静态导出有关,因为我在requests文件夹中没有名为7ecf58774844(或7ecf58774844.html)的文件,所以我得到了这个错误。我想知道staticwebapp.config.json中的routes是否可以帮助我。
因此,我删除了next.config.js中的output: 'export',并尝试重建应用程序。build目录看起来像下面这样:

我不确定的是如何使用SWA CLI手动部署这个应用程序。
当我做一些事情,比如:

swa deploy --deployment-token my-deployment-token ./build --env production

我得到以下错误消息:

✖ Failed to find a default file in the app artifacts folder (build). Valid default files: index.html,Index.html.
✖ If your application contains purely static content, please verify that the variable 'app_location' in your deployment configuration file points to the root of your application.
✖ If your application requires build steps, please validate that a default file exists in the build output directory.

我相信我错过了一些非常琐碎的东西,但我在这里完全迷失了方向。我看到的所有示例都是针对SSG的,并且使用了GitHub/Azure DevOps,这不是我的情况。我的是一个完全静态的应用程序,我必须使用SWACLI手动部署它。

xu3bshqb

xu3bshqb1#

在部署应用程序之前,您是否尝试过从SWA CLI构建应用程序?

  • swa build --auto-这将生成一个默认的out文件夹,其中包含应用程序构建。
  • swa deploy --deployment-token <token> ./out --env production-就像你做的,但在这里与文件夹。

当然你可以重命名构建的输出,看看:https://azure.github.io/static-web-apps-cli/docs/cli/swa-build

相关问题