过去几天,我在通过 Bitbucket 管道构建应用程序后试图解决有关路由问题的问题,这让我失去了理智。
当我将应用程序的路由器从旧路由器更改为 React Router V6 时,问题就开始了,我正在使用
pm2 path --no-daemon --spa
将应用程序部署为 Web 服务应用程序,到目前为止还不错,但在更改路由器后停止正常工作。
因此,我将部署更改为 Azure 静态 Web 应用程序,并使用 staticwebapp.config.json
进行部署{
"navigationFallback": {
"rewrite": "index.html",
"exclude": ["/static/media/*.{png,jpg,jpeg,gif,bmp}", "/static/css/*"]
},
"mimeTypes": {
".json":"application/json"
}
}
使用 SWA CLI 部署 BitBucket 的我的管道 YML
image: node:20
pipelines:
branches:
dev:
- step:
name: Build and Deploy React App
deployment: Staging
script:
- unset CI
- yarn install
- yarn global add @azure/static-web-apps-cli
- yarn build
- swa --verbose=silly deploy "$BITBUCKET_CLONE_DIR/build" --deployment token=$deployment_token --env production
artifacts:
- build/**
奇怪的是
如果我进行本地构建并通过 SWA 将其部署到 azure 静态 Web 应用程序,则一切正常。 但是,例如从管道工件下载构建并在本地运行它,路由器就会损坏,并且不会像服务器上那样充当 SPA。
两个版本都有 staticwebapp.config.json 到位,并且它们是相等的..让我震惊为什么会发生这种情况。
问题解决了..答案就在我面前..我传递的环境变量 url 没有 https://
更正后,Azure 应用服务上的两个应用程序和静态 Web 应用程序都可以正常工作