【问题标题】:Angular prerender i18n confusionAngular prerender i18n 混淆
【发布时间】:2021-04-26 16:24:12
【问题描述】:

我们严重依赖 angular i18n 进行本地化。 通常我们会使用命令为语言环境创建一个文件夹

ng build some-project --localize

这将创建/dist/some-project/en//dist/some-project/de/

npm run prerender 在 /dist/some-project/browser/ 中只输出一个,同时忽略 --localize 标志。 我的问题是:prerender 选项是否仍处于某种测试阶段?我们现在应该避免它,还是我在这里遗漏了什么?

我的理解是我必须为每个语言环境创建单独的静态页面。

这是我的 angular.json

"prerender": {
      "builder": "@nguniversal/builders:prerender",
      "options": {
        "browserTarget": "offer:build:prod",
        "serverTarget": "offer:server:prod",
        "routes": [
          "/"
        ]
      },
      "configurations": {
        "prod": {}
      }
    }

【问题讨论】:

    标签: angular server-side-rendering angular-universal


    【解决方案1】:

    我认为这根本没有记录。 我花了几天的谷歌搜索/尝试失败,只是在发布问题后几分钟才找到答案。

    npm run prerender
    

    执行:

     "prerender": {
          "builder": "@nguniversal/builders:prerender",
          "options": {
            "browserTarget": "offer:build:prod",
            "serverTarget": "offer:server:prod",
            "routes": [
              "/"
            ]
          },
          "configurations": {
            "prod": {}
          }
        }
    

    我需要将"localize": ["en", "de"] 选项添加到serverbrowser 构建配置
    服务器:

            "server": {
              "builder": "@angular-devkit/build-angular:server",
              "options": {
                "outputPath": "dist/offer/server",
                "main": "projects/offer/server.ts",
                "tsConfig": "projects/offer/tsconfig.server.json",
                "localize": ["en", "de"]
              },
              "configurations": {
                "prod": {
                  "sourceMap": false,
                  "optimization": true
                }
              }
            }
    

    客户:

    "architect": {
            "build": {
              "builder": "@angular-devkit/build-angular:browser",
              "options": {
                "outputPath": "dist/offer/browser",
                "index": "projects/offer/src/index.html",
                "main": "projects/offer/src/main.ts",
                "polyfills": "projects/offer/src/polyfills.ts",
                "tsConfig": "projects/offer/tsconfig.app.json",
                "localize": ["en", "de"],
                "aot": true,
                "extractCss": true,
                "preserveSymlinks": true,
                "stylePreprocessorOptions": {
                  "includePaths": [
                    "projects/offer/src"
                  ]
                }... etc
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-17
      相关资源
      最近更新 更多