Ionic/Angular 应用程序在本地工作但未托管

问题描述 投票:0回答:1

我有一个 Angular 18 的 ionic 应用程序,当我运行 ngserve 或 ionicserve 时它可以工作,但是当我将它推送到 git 以部署在我的 azure 静态 Web 应用程序上时,它显示的 bg 与我尝试使用电容器构建 APK 相同

主办 Hosted app

本地 enter image description here

这是我的 Angular.config

"projects": {
    "app": {
      "projectType": "application",
      "schematics": {
        "@ionic/angular-toolkit:page": {
          "styleext": "scss",
          "standalone": true
        }
      },
      "root": "",
      "sourceRoot": "src",
      "prefix": "app",
      "architect": {
        "build": {
          "builder": "@angular-devkit/build-angular:browser",
          "options": {
            "outputPath": "www",
            "index": "src/index.html",
            "main": "src/main.ts",
            "polyfills": "src/polyfills.ts",
            "tsConfig": "tsconfig.app.json",
            "inlineStyleLanguage": "scss",
            "assets": [
              {
                "glob": "**/*",
                "input": "src/assets",
                "output": "assets"
              },
              "src/manifest.webmanifest",
              "src/manifest.webmanifest"
            ],
            "styles": ["src/global.scss", "src/theme/variables.scss"],
            "scripts": [],
            "serviceWorker": true,
            "ngswConfigPath": "ngsw-config.json",
            "optimization": { "styles": { "inlineCritical": false } }
          },
          "configurations": {
            "production": {
              "serviceWorker": false,
              "budgets": [
                {
                  "type": "initial",
                  "maximumWarning": "2mb",
                  "maximumError": "5mb"
                },
                {
                  "type": "anyComponentStyle",
                  "maximumWarning": "8kb",
                  "maximumError": "5mb"
                }
              ],
              "fileReplacements": [
                {
                  "replace": "src/environments/environment.ts",
                  "with": "src/environments/environment.prod.ts"
                }
              ],
              "outputHashing": "all"
            },
            "development": {
              "buildOptimizer": false,
              "optimization": false,
              "vendorChunk": true,
              "extractLicenses": false,
              "sourceMap": true,
              "namedChunks": true
            },
            "ci": {
              "progress": false
            }
          },
          "defaultConfiguration": "production"
        },

当我从 www 文件夹打开它时,Index.html 也是空白的

我已经厌倦了更改基础和不同的构建类型,甚至要求 GPT 但什么也没有

angular azure ionic-framework azure-static-web-app
1个回答
0
投票

当我从 www 文件夹打开它时,Index.html 也是空白的

此问题通常源于生产构建中的构建配置问题或运行时错误。

  • 构建应用程序 (
    ng build --configuration production
    ) 后,使用简单的 HTTP 服务器(如
    www
    )提供
    http-server
    文件夹,而不是直接打开
    index.html
    。在浏览器中打开应用程序,然后按
    F12
    打开开发人员工具。

Angular 应用程序依赖于

<base href="/">
中的
index.html
标签来解析相对 URL。不正确的基址
href
可能会导致资源无法正确加载。如果应用程序托管在子目录中,请调整基础
href
,如下所示
<base href="/subdirectory/">
)。

  • 您已在
    src/manifest.webmanifest
    数组中列出了两次
    assets
    。删除重复项以避免潜在的冲突。
"assets": [
  {
    "glob": "**/*",
    "input": "src/assets",
    "output": "assets"
  },
  "src/manifest.webmanifest"
],

build
选项中,
serviceWorker
设置为
true
,但在
production
配置中,它设置为
false
。这种不一致可能会导致问题。

routes.json
文件:

{
  "routes": [
    {
      "route": "/*",
      "serve": "/index.html",
      "statusCode": 200
    }
  ]
}

有时,过时的构建缓存可能会导致意外问题。使用这个命令 -

ng build --configuration production --delete-output-path 

enter image description here

来自本地,效果完美! 结果:

enter image description here

将应用程序部署到静态应用程序服务后:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.