我有这个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手动部署它。
1条答案
按热度按时间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